Obsidian CLI es una interfaz de línea de comandos que te permite controlar Obsidian desde tu terminal para scripting, automatización e integración con herramientas externas.
Todo lo que puedes hacer en Obsidian lo puedes hacer desde la línea de comandos. Obsidian CLI incluso incluye [[#Comandos para desarrolladores|comandos para desarrolladores]] para acceder a herramientas de desarrollo, inspeccionar elementos, tomar capturas de pantalla, recargar complementos y más.
![[obsidian-cli.mp4#interface]]
> [!warning] Requiere el instalador de Obsidian 1.12
> Usar la CLI requiere el instalador de Obsidian 1.12. Consulta la [[Actualizar Obsidian#Actualizaciones del instalador|guía de actualización de la versión del instalador]].
## Instalar Obsidian CLI
Actualiza a la última [[Actualizar Obsidian|versión del instalador de Obsidian]] (1.11.7) y a la última [[Versiones de acceso anticipado|versión de acceso anticipado]] (1.12.x).
Habilita Obsidian CLI en Obsidian:
1. Ve a **Ajustes** → **General**.
2. Activa **Interfaz de línea de comandos**.
3. Sigue las instrucciones para registrar Obsidian CLI.
Si tienes problemas instalando Obsidian CLI, consulta [[#Solución de problemas]].
## Primeros pasos
Obsidian CLI admite tanto comandos individuales como una interfaz de usuario de terminal (TUI) con ayuda interactiva y autocompletado.
> [!info] La aplicación Obsidian debe estar en ejecución
> Obsidian CLI requiere que la aplicación Obsidian esté en ejecución. Si Obsidian no está en ejecución, el primer comando que ejecutes iniciará Obsidian.
>
> ¿Buscas sincronizar sin la aplicación de escritorio? Consulta [[Sync sin interfaz gráfica|Obsidian Headless]].
### Ejecutar un comando
Ejecuta un comando individual sin abrir la TUI:
```shell
# Ejecutar el comando de ayuda
obsidian help
```
### Usar la interfaz de terminal
Usa la TUI ingresando `obsidian`. Los comandos posteriores se pueden ingresar sin `obsidian`.
```shell
# Abrir la TUI, luego ejecutar ayuda
obsidian
help
```
La TUI admite autocompletado, historial de comandos y búsqueda inversa. Usa `Ctrl+R` para buscar en tu historial de comandos. Consulta [[#Atajos de teclado]] para todos los atajos disponibles.
## Ejemplos
Aquí tienes algunos ejemplos de lo que Obsidian CLI puede hacer.
### Uso diario
```shell
# Abrir la nota diaria de hoy
obsidian daily
# Agregar una tarea a tu nota diaria
obsidian daily:append content="- [ ] Comprar víveres"
# Buscar en tu bóveda
obsidian search query="notas de reunión"
# Leer el archivo activo
obsidian read
# Listar todas las tareas de tu nota diaria
obsidian tasks daily
# Crear una nueva nota desde una plantilla
obsidian create name="Viaje a París" template=Viaje
# Listar todas las etiquetas en tu bóveda con conteos
obsidian tags counts
# Comparar dos versiones de un archivo
obsidian diff file=README from=1 to=3
```
### Para desarrolladores
Muchos [[#Comandos para desarrolladores]] están disponibles para el desarrollo de complementos y temas. Estos comandos permiten que herramientas de codificación agéntica prueben y depuren automáticamente.
```shell
# Abrir herramientas de desarrollo
obsidian devtools
# Recargar un plugin de la comunidad que estás desarrollando
obsidian plugin:reload id=my-plugin
# Tomar una captura de pantalla de la aplicación
obsidian dev:screenshot path=screenshot.png
# Ejecutar JavaScript en la consola de la aplicación
obsidian eval code="app.vault.getFiles().length"
```
## Cómo hacerlo
### Usar parámetros y flags
Los comandos pueden usar **parámetros** y **flags**. La mayoría de los comandos no requieren ningún parámetro o flag. Los parámetros requeridos están marcados como `required`. Por ejemplo:
```shell
# Crear una nueva nota usando el nombre predeterminado "Sin título"
obsidian create
```
Un **parámetro** toma un valor, escrito como `parámetro=valor`. Si el valor tiene espacios, envuélvelo en comillas:
```shell
# Crear una nueva nota llamada "Nota" con contenido "Hola mundo"
obsidian create name=Nota content="Hola mundo"
```
Un **flag** es un interruptor booleano sin valor. Inclúyelo para activarlo, por ejemplo `open` y `overwrite` son flags:
```shell
# Crear una nota y abrirla
obsidian create name=Nota content="Hola" open overwrite
```
Para contenido multilínea usa `\n` para nueva línea. Usa `\t` para tabulación.
```bash
obsidian create name=Nota content="# Título\n\nTexto del cuerpo"
```
### Apuntar a una bóveda
Si el directorio de trabajo actual de tu terminal es una carpeta de bóveda, esa bóveda se usa por defecto. De lo contrario, se usa la bóveda actualmente activa.
Usa `vault=<nombre>` o `vault=<id>` para apuntar a una bóveda específica. Esto debe ser el primer parámetro antes de tu comando:
```shell
obsidian vault=Notas daily
obsidian vault="Mi Bóveda" search query="prueba"
```
En la TUI, usa `vault:open <nombre>` o `<id>` para cambiar a una bóveda diferente.
### Apuntar a un archivo
Muchos comandos aceptan los parámetros `file` y `path` para apuntar a un archivo específico. Si no se proporciona ninguno, el comando usa el archivo activo por defecto.
- `file=<nombre>` resuelve el archivo usando la misma resolución de enlaces que los [[Enlaces internos|enlaces wiki]], coincidiendo por nombre de archivo sin requerir la ruta completa o extensión.
- `path=<ruta>` requiere la ruta exacta desde la raíz de la bóveda, por ejemplo `carpeta/nota.md`.
```shell
# Estos son equivalentes si "Receta.md" es el único archivo con ese nombre
obsidian read file=Receta
obsidian read path="Plantillas/Receta.md"
```
### Copiar la salida
Agrega `--copy` a cualquier comando para copiar la salida al portapapeles:
```shell
read --copy
search query="TODO" --copy
```
## Comandos generales
### `help`
Mostrar lista de todos los comandos disponibles.
| Parámetro | Descripción |
| ----------- | ---------------------------------------- |
| `<command>` | Mostrar ayuda para un comando específico. |
### `version`
Mostrar la versión de Obsidian.
### `reload`
Recargar la ventana de la aplicación.
### `restart`
Reiniciar la aplicación.
## Bases
Comandos para [[Introducción a Bases|Bases]].
### `bases`
Listar todos los archivos `.base` en la bóveda.
### `base:views`
Listar vistas en el archivo base actual.
### `base:create`
Crear un nuevo elemento en una base. Usa la vista base activa por defecto si no se especifica un archivo.
```bash
file=<name> # nombre del archivo base
path=<path> # ruta del archivo base
view=<name> # nombre de la vista
name=<name> # nombre del nuevo archivo
content=<text> # contenido inicial
open # abrir archivo después de crear
newtab # abrir en nueva pestaña
```
### `base:query`
Consultar una base y devolver resultados.
```bash
file=<name> # nombre del archivo base
path=<path> # ruta del archivo base
view=<name> # nombre de la vista a consultar
format=json|csv|tsv|md|paths # formato de salida (predeterminado: json)
```
## Marcadores
Comandos para [[Marcadores]].
### `bookmarks`
Listar marcadores.
```bash
total # devolver conteo de marcadores
verbose # incluir tipos de marcadores
format=json|tsv|csv # formato de salida (predeterminado: tsv)
```
### `bookmark`
Agregar un marcador.
```bash
file=<path> # archivo a marcar
subpath=<subpath> # subruta (encabezado o bloque) dentro del archivo
folder=<path> # carpeta a marcar
search=<query> # consulta de búsqueda a marcar
url=<url> # URL a marcar
title=<title> # título del marcador
```
## Paleta de comandos
Comandos para la [[Paleta de comandos]] y [[Teclas de acceso rápido]]. Esto incluye todos los comandos registrados por complementos.
### `commands`
Listar IDs de comandos disponibles.
```bash
filter=<prefix> # filtrar por prefijo de ID
```
### `command`
Ejecutar un comando de Obsidian.
```bash
id=<command-id> # (required) ID del comando a ejecutar
```
### `hotkeys`
Listar atajos de teclado para todos los comandos.
```bash
total # devolver conteo de atajos
verbose # mostrar si el atajo es personalizado
format=json|tsv|csv # formato de salida (predeterminado: tsv)
```
### `hotkey`
Obtener atajo de teclado para un comando.
```bash
id=<command-id> # (required) ID del comando
verbose # mostrar si es personalizado o predeterminado
```
## Notas diarias
Comandos para [[Notas diarias]].
### `daily`
Abrir nota diaria.
```bash
paneType=tab|split|window # tipo de panel en el que abrir
```
### `daily:path`
Obtener ruta de la nota diaria. Devuelve la ruta esperada incluso si el archivo aún no ha sido creado.
### `daily:read`
Leer contenido de la nota diaria.
### `daily:append`
Agregar contenido al final de la nota diaria.
```bash
content=<text> # (required) contenido a agregar
paneType=tab|split|window # tipo de panel en el que abrir
inline # agregar sin nueva línea
open # abrir archivo después de agregar
```
### `daily:prepend`
Agregar contenido al inicio de la nota diaria.
```bash
content=<text> # (required) contenido a anteponer
paneType=tab|split|window # tipo de panel en el que abrir
inline # anteponer sin nueva línea
open # abrir archivo después de agregar
```
## Historial de archivos
### `diff`
Listar o comparar versiones de la [[Recuperación de archivos]] local y [[Introducción a Obsidian Sync|Sync]]. Las versiones están numeradas de la más reciente a la más antigua.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
from=<n> # número de versión desde donde comparar
to=<n> # número de versión hasta donde comparar
filter=local|sync # filtrar por origen de versión
```
**Ejemplos:**
```shell
# Listar todas las versiones del archivo activo
diff
# Listar todas las versiones de un archivo específico
diff file=Receta
# Comparar la última versión con el archivo actual
diff file=Receta from=1
# Comparar dos versiones
diff file=Receta from=2 to=1
# Mostrar solo versiones de Sync
diff filter=sync
```
### `history`
Listar versiones solo de [[Recuperación de archivos]]. Consulta [[#Sync|sync:history]] para el comando equivalente de Sync.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
### `history:list`
Listar todos los archivos con historial local.
### `history:read`
Leer una versión del historial local.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
version=<n> # número de versión (predeterminado: 1)
```
### `history:restore`
Restaurar una versión del historial local.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
version=<n> # (required) número de versión
```
### `history:open`
Abrir recuperación de archivos.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
## Archivos y carpetas
### `file`
Mostrar información del archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
Ejemplo:
```
path Notas/Receta.md
name Receta
extension md
size 1024
created 1700000000000
modified 1700001000000
```
### `files`
Listar archivos en la bóveda.
```bash
folder=<path> # filtrar por carpeta
ext=<extension> # filtrar por extensión
total # devolver conteo de archivos
```
### `folder`
Mostrar información de carpeta.
```bash
path=<path> # (required) ruta de la carpeta
info=files|folders|size # devolver solo información específica
```
### `folders`
Listar carpetas en la bóveda.
```bash
folder=<path> # filtrar por carpeta padre
total # devolver conteo de carpetas
```
### `open`
Abrir un archivo.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
newtab # abrir en nueva pestaña
```
### `create`
Crear o sobrescribir un archivo.
```bash
name=<name> # nombre del archivo
path=<path> # ruta del archivo
content=<text> # contenido inicial
template=<name> # plantilla a usar
overwrite # sobrescribir si el archivo existe
open # abrir archivo después de crear
newtab # abrir en nueva pestaña
```
### `read`
Leer contenido del archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
### `append`
Agregar contenido al final de un archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
content=<text> # (required) contenido a agregar
inline # agregar sin nueva línea
```
### `prepend`
Agregar contenido al inicio después de los metadatos iniciales (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
content=<text> # (required) contenido a anteponer
inline # anteponer sin nueva línea
```
### `move`
Mover o renombrar un archivo (predeterminado: archivo activo). Esto actualizará automáticamente los [[Enlaces internos]] si está activado en los [[Configuración#Actualizar los enlaces internos automáticamente|ajustes de la bóveda]].
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
to=<path> # (required) carpeta o ruta de destino
```
### `rename`
Renombrar un archivo (predeterminado: archivo activo). La extensión del archivo se preserva automáticamente si se omite del nuevo nombre. Usa [[#`move`|move]] para renombrar y mover un archivo al mismo tiempo. Esto actualizará automáticamente los [[Enlaces internos]] si está activado en los [[Configuración#Actualizar los enlaces internos automáticamente|ajustes de la bóveda]].
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
name=<name> # (required) nuevo nombre del archivo
```
### `delete`
Eliminar un archivo (predeterminado: archivo activo, va a la papelera por defecto).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
permanent # omitir papelera, eliminar permanentemente
```
## Enlaces
Comandos para [[Enlace de retorno]] y [[Enlaces salientes]].
### `backlinks`
Listar enlaces de retorno a un archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo de destino
path=<path> # ruta del archivo de destino
counts # incluir conteo de enlaces
total # devolver conteo de enlaces de retorno
format=json|tsv|csv # formato de salida (predeterminado: tsv)
```
### `links`
Listar enlaces salientes de un archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
total # devolver conteo de enlaces
```
### `unresolved`
Listar enlaces no resueltos en la bóveda.
```bash
total # devolver conteo de enlaces no resueltos
counts # incluir conteo de enlaces
verbose # incluir archivos de origen
format=json|tsv|csv # formato de salida (predeterminado: tsv)
```
### `orphans`
Listar archivos sin enlaces entrantes.
```bash
total # devolver conteo de huérfanos
```
### `deadends`
Listar archivos sin enlaces salientes.
```bash
total # devolver conteo de callejones sin salida
```
## Esquema
Comandos para [[Esquema]].
### `outline`
Mostrar encabezados del archivo actual.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
format=tree|md|json # formato de salida (predeterminado: tree)
total # devolver conteo de encabezados
```
## Complementos
Comandos para [[Complementos principales]] y [[Complementos de la comunidad]].
### `plugins`
Listar complementos instalados.
```bash
filter=core|community # filtrar por tipo de complemento
versions # incluir números de versión
format=json|tsv|csv # formato de salida (predeterminado: tsv)
```
### `plugins:enabled`
Listar complementos habilitados.
```bash
filter=core|community # filtrar por tipo de complemento
versions # incluir números de versión
format=json|tsv|csv # formato de salida (predeterminado: tsv)
```
### `plugins:restrict`
Activar/desactivar o verificar el modo restringido.
```bash
on # activar modo restringido
off # desactivar modo restringido
```
### `plugin`
Obtener información del complemento.
```bash
id=<plugin-id> # (required) ID del complemento
```
### `plugin:enable`
Activar un complemento.
```bash
id=<id> # (required) ID del complemento
filter=core|community # tipo de complemento
```
### `plugin:disable`
Desactivar un complemento.
```bash
id=<id> # (required) ID del complemento
filter=core|community # tipo de complemento
```
### `plugin:install`
Instalar un complemento de la comunidad.
```bash
id=<id> # (required) ID del complemento
enable # activar después de instalar
```
### `plugin:uninstall`
Desinstalar un complemento de la comunidad.
```bash
id=<id> # (required) ID del complemento
```
### `plugin:reload`
Recargar un complemento (para desarrolladores).
```bash
id=<id> # (required) ID del complemento
```
## Propiedades
Comandos relacionados con [[Propiedades]].
### `aliases`
Listar alias en la bóveda. Usa `active` o `file`/`path` para mostrar alias de un archivo específico.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
total # devolver conteo de alias
verbose # incluir rutas de archivos
active # mostrar alias del archivo activo
```
### `properties`
Listar propiedades en la bóveda. Usa `active` o `file`/`path` para mostrar propiedades de un archivo específico.
```bash
file=<name> # mostrar propiedades del archivo
path=<path> # mostrar propiedades de la ruta
name=<name> # obtener conteo de propiedad específica
sort=count # ordenar por conteo (predeterminado: nombre)
format=yaml|json|tsv # formato de salida (predeterminado: yaml)
total # devolver conteo de propiedades
counts # incluir conteo de ocurrencias
active # mostrar propiedades del archivo activo
```
### `property:set`
Establecer una propiedad en un archivo (predeterminado: archivo activo).
```bash
name=<name> # (required) nombre de la propiedad
value=<value> # (required) valor de la propiedad
type=text|list|number|checkbox|date|datetime # tipo de propiedad
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
### `property:remove`
Eliminar una propiedad de un archivo (predeterminado: archivo activo).
```bash
name=<name> # (required) nombre de la propiedad
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
### `property:read`
Leer el valor de una propiedad de un archivo (predeterminado: archivo activo).
```bash
name=<name> # (required) nombre de la propiedad
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
## Publish
Comandos para [[Introducción a Obsidian Publish|Obsidian Publish]].
### `publish:site`
Mostrar información del sitio de publicación (slug, URL).
### `publish:list`
Listar archivos publicados.
```bash
total # devolver conteo de archivos publicados
```
### `publish:status`
Listar cambios de publicación.
```bash
total # devolver conteo de cambios
new # mostrar solo archivos nuevos
changed # mostrar solo archivos modificados
deleted # mostrar solo archivos eliminados
```
### `publish:add`
Publicar un archivo o todos los archivos modificados (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
changed # publicar todos los archivos modificados
```
### `publish:remove`
Despublicar un archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
### `publish:open`
Abrir archivo en el sitio publicado (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
## Notas aleatorias
Comandos para [[Nota aleatoria]].
### `random`
Abrir una nota aleatoria.
```bash
folder=<path> # limitar a carpeta
newtab # abrir en nueva pestaña
```
### `random:read`
Leer una nota aleatoria (incluye ruta).
```bash
folder=<path> # limitar a carpeta
```
## Búsqueda
Comandos para [[Búsqueda]].
### `search`
Buscar texto en la bóveda. Devuelve rutas de archivos coincidentes.
```bash
query=<text> # (required) consulta de búsqueda
path=<folder> # limitar a carpeta
limit=<n> # máximo de archivos
format=text|json # formato de salida (predeterminado: text)
total # devolver conteo de coincidencias
case # distinguir mayúsculas y minúsculas
```
### `search:context`
Buscar con contexto de línea coincidente. Devuelve salida estilo grep `ruta:línea: texto`.
```bash
query=<text> # (required) consulta de búsqueda
path=<folder> # limitar a carpeta
limit=<n> # máximo de archivos
format=text|json # formato de salida (predeterminado: text)
case # distinguir mayúsculas y minúsculas
```
### `search:open`
Abrir vista de búsqueda.
```bash
query=<text> # consulta de búsqueda inicial
```
## Sync
Comandos para [[Introducción a Obsidian Sync|Obsidian Sync]].
> [!tip] Sincronizar sin la aplicación de escritorio
> Estos comandos controlan Sync dentro de la aplicación Obsidian en ejecución. Para sincronizar bóvedas desde la línea de comandos sin la aplicación de escritorio, consulta [[Sync sin interfaz gráfica]].
### `sync`
Pausar o reanudar la sincronización.
```bash
on # reanudar sincronización
off # pausar sincronización
```
### `sync:status`
Mostrar estado y uso de sincronización.
### `sync:history`
Listar historial de versiones de sincronización para un archivo (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
total # devolver conteo de versiones
```
### `sync:read`
Leer una versión de sincronización (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
version=<n> # (required) número de versión
```
### `sync:restore`
Restaurar una versión de sincronización (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
version=<n> # (required) número de versión
```
### `sync:open`
Abrir historial de sincronización (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
```
### `sync:deleted`
Listar archivos eliminados en sincronización.
```bash
total # devolver conteo de archivos eliminados
```
## Etiquetas
Comandos para [[Etiquetas]].
### `tags`
Listar etiquetas en la bóveda. Usa `active` o `file`/`path` para mostrar etiquetas de un archivo específico.
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
sort=count # ordenar por conteo (predeterminado: nombre)
total # devolver conteo de etiquetas
counts # incluir conteo de etiquetas
format=json|tsv|csv # formato de salida (predeterminado: tsv)
active # mostrar etiquetas del archivo activo
```
### `tag`
Obtener información de etiqueta.
```bash
name=<tag> # (required) nombre de la etiqueta
total # devolver conteo de ocurrencias
verbose # incluir lista de archivos y conteo
```
## Tareas
Comandos para gestión de tareas.
### `tasks`
Listar tareas en la bóveda. Usa `active` o `file`/`path` para mostrar tareas de un archivo específico.
```bash
file=<name> # filtrar por nombre de archivo
path=<path> # filtrar por ruta de archivo
status="<char>" # filtrar por carácter de estado
total # devolver conteo de tareas
done # mostrar tareas completadas
todo # mostrar tareas pendientes
verbose # agrupar por archivo con números de línea
format=json|tsv|csv # formato de salida (predeterminado: text)
active # mostrar tareas del archivo activo
daily # mostrar tareas de la nota diaria
```
**Ejemplos:**
```bash
# Listar todas las tareas en la bóveda
tasks
# Listar tareas pendientes en la bóveda
tasks todo
# Listar tareas completadas de un archivo específico
tasks file=Receta done
# Listar tareas de la nota diaria de hoy
tasks daily
# Contar tareas en la nota diaria
tasks daily total
# Listar tareas con rutas de archivos y números de línea
tasks verbose
# Filtrar por estado personalizado (comillas para caracteres especiales)
tasks 'status=?'
```
### `task`
Mostrar o actualizar una tarea.
```bash
ref=<path:line> # referencia de tarea (ruta:línea)
file=<name> # nombre del archivo
path=<path> # ruta del archivo
line=<n> # número de línea
status="<char>" # establecer carácter de estado
toggle # alternar estado de tarea
daily # nota diaria
done # marcar como hecha
todo # marcar como pendiente
```
**Ejemplos:**
```bash
# Mostrar información de tarea
task file=Receta line=8
task ref="Receta.md:8"
# Alternar completado de tarea
task ref="Receta.md:8" toggle
# Alternar tarea en nota diaria
task daily line=3 toggle
# Establecer estado de tarea
task file=Receta line=8 done # → [x]
task file=Receta line=8 todo # → [ ]
task file=Receta line=8 status=- # → [-]
task daily line=3 done # Marcar tarea de nota diaria como hecha
```
## Plantillas
Comandos para [[Plantillas|Plantillas]].
### `templates`
Listar plantillas.
```bash
total # devolver conteo de plantillas
```
### `template:read`
Leer contenido de plantilla.
```bash
name=<template> # (required) nombre de la plantilla
title=<title> # título para resolución de variables
resolve # resolver variables de plantilla
```
### `template:insert`
Insertar plantilla en el archivo activo.
```bash
name=<template> # (required) nombre de la plantilla
```
**Notas:**
- La opción `resolve` procesa las variables `{{date}}`, `{{time}}`, `{{title}}`
- Usa `create path=<ruta> template=<nombre>` para crear un archivo con una plantilla
## Temas y fragmentos
Comandos para [[Temas]] y [[Fragmentos CSS]].
### `themes`
Listar temas instalados.
```bash
versions # incluir números de versión
```
### `theme`
Mostrar tema activo u obtener información.
```bash
name=<name> # nombre del tema para detalles
```
### `theme:set`
Establecer tema activo.
```bash
name=<name> # (required) nombre del tema (vacío para predeterminado)
```
### `theme:install`
Instalar un tema de la comunidad.
```bash
name=<name> # (required) nombre del tema
enable # activar después de instalar
```
### `theme:uninstall`
Desinstalar un tema.
```bash
name=<name> # (required) nombre del tema
```
### `snippets`
Listar fragmentos CSS instalados.
### `snippets:enabled`
Listar fragmentos CSS habilitados.
### `snippet:enable`
Activar un fragmento CSS.
```bash
name=<name> # (required) nombre del fragmento
```
### `snippet:disable`
Desactivar un fragmento CSS.
```bash
name=<name> # (required) nombre del fragmento
```
## Notas únicas
Comandos para [[Creador de nota única]].
### `unique`
Crear nota única.
```bash
name=<text> # nombre de la nota
content=<text> # contenido inicial
paneType=tab|split|window # tipo de panel en el que abrir
open # abrir archivo después de crear
```
## Bóveda
### `vault`
Mostrar información de la bóveda.
```bash
info=name|path|files|folders|size # devolver solo información específica
```
### `vaults`
Listar bóvedas conocidas.
```bash
total # devolver conteo de bóvedas
verbose # incluir rutas de bóvedas
```
### `vault:open`
Cambiar a una bóveda diferente (solo TUI).
```bash
name=<name> # (required) nombre de la bóveda
```
## Visor web
Comandos para [[Visor web]].
### `web`
Abrir URL en el visor web.
```bash
url=<url> # (required) URL a abrir
newtab # abrir en nueva pestaña
```
## Conteo de palabras
Comandos para [[Contador de palabras]].
### `wordcount`
Contar palabras y caracteres (predeterminado: archivo activo).
```bash
file=<name> # nombre del archivo
path=<path> # ruta del archivo
words # devolver solo conteo de palabras
characters # devolver solo conteo de caracteres
```
## Espacio de trabajo
Comandos para [[Espacio de trabajo]] y el complemento [[Espacios de trabajo]].
### `workspace`
Mostrar árbol del espacio de trabajo.
```bash
ids # incluir IDs de elementos del espacio de trabajo
```
### `workspaces`
Listar espacios de trabajo guardados.
```bash
total # devolver conteo de espacios de trabajo
```
### `workspace:save`
Guardar diseño actual como espacio de trabajo.
```bash
name=<name> # nombre del espacio de trabajo
```
### `workspace:load`
Cargar un espacio de trabajo guardado.
```bash
name=<name> # (required) nombre del espacio de trabajo
```
### `workspace:delete`
Eliminar un espacio de trabajo guardado.
```bash
name=<name> # (required) nombre del espacio de trabajo
```
### `tabs`
Listar pestañas abiertas.
```bash
ids # incluir IDs de pestañas
```
### `tab:open`
Abrir una nueva pestaña.
```bash
group=<id> # ID del grupo de pestañas
file=<path> # archivo a abrir
view=<type> # tipo de vista a abrir
```
### `recents`
Listar archivos abiertos recientemente.
```bash
total # devolver conteo de archivos recientes
```
## Comandos para desarrolladores
Comandos para ayudarte a desarrollar [[Complementos de la comunidad]] y [[Temas]]. Aprende más visitando la [documentación para desarrolladores de Obsidian](https://docs.obsidian.md).
### `devtools`
Alternar herramientas de desarrollo de Electron.
### `dev:debug`
Adjuntar/desadjuntar depurador del protocolo Chrome DevTools.
```bash
on # adjuntar depurador
off # desadjuntar depurador
```
### `dev:cdp`
Ejecutar un comando del protocolo Chrome DevTools.
```bash
method=<CDP.method> # (required) método CDP a llamar
params=<json> # parámetros del método como JSON
```
### `dev:errors`
Mostrar errores JavaScript capturados.
```bash
clear # limpiar el búfer de errores
```
### `dev:screenshot`
Tomar una captura de pantalla (devuelve PNG en base64).
```bash
path=<filename> # ruta del archivo de salida
```
### `dev:console`
Mostrar mensajes de consola capturados.
```bash
limit=<n> # máximo de mensajes a mostrar (predeterminado 50)
level=log|warn|error|info|debug # filtrar por nivel de registro
clear # limpiar el búfer de consola
```
### `dev:css`
Inspeccionar CSS con ubicaciones de origen.
```bash
selector=<css> # (required) selector CSS
prop=<name> # filtrar por nombre de propiedad
```
### `dev:dom`
Consultar elementos DOM.
```bash
selector=<css> # (required) selector CSS
attr=<name> # obtener valor de atributo
css=<prop> # obtener valor de propiedad CSS
total # devolver conteo de elementos
text # devolver contenido de texto
inner # devolver innerHTML en lugar de outerHTML
all # devolver todas las coincidencias en lugar de la primera
```
### `dev:mobile`
Alternar emulación móvil.
```bash
on # activar emulación móvil
off # desactivar emulación móvil
```
### `eval`
Ejecutar JavaScript y devolver resultado.
```bash
code=<javascript> # (required) código JavaScript a ejecutar
```
## Atajos de teclado
Estos atajos están disponibles en la [[#Usar la interfaz de terminal|TUI]].
### Navegación
| Acción | Atajo |
| ------------------------------------------------------------- | --------------- |
| Mover cursor a la izquierda | `←` / `Ctrl+B` |
| Mover cursor a la derecha (acepta sugerencia al final de línea) | `→` / `Ctrl+F` |
| Ir al inicio de línea | `Ctrl+A` |
| Ir al final de línea | `Ctrl+E` |
| Retroceder una palabra | `Alt+B` |
| Avanzar una palabra | `Alt+F` |
### Edición
| Acción | Atajo |
| ----------------------------- | -------------------------- |
| Eliminar hasta inicio de línea | `Ctrl+U` |
| Eliminar hasta final de línea | `Ctrl+K` |
| Eliminar palabra anterior | `Ctrl+W` / `Alt+Backspace` |
### Autocompletado
| Acción | Atajo |
| --------------------------------------------------------- | ----------- |
| Entrar en modo sugerencia / aceptar sugerencia seleccionada | `Tab` |
| Salir del modo sugerencia | `Shift+Tab` |
| Entrar en modo sugerencia (desde entrada nueva) | `↓` |
| Aceptar primera/sugerencia seleccionada (al final de línea) | `→` |
### Historial
| Acción | Atajo |
| ------------------------------------------------------------------- | --------------- |
| Entrada anterior del historial / navegar sugerencias arriba | `↑` / `Ctrl+P` |
| Siguiente entrada del historial / navegar sugerencias abajo | `↓` / `Ctrl+N` |
| Búsqueda inversa en historial (escribe para filtrar, `Ctrl+R` para ciclar) | `Ctrl+R` |
### Otros
| Acción | Atajo |
| --------------------------------------------------------------- | -------------------- |
| Ejecutar comando o aceptar sugerencia | `Enter` |
| Deshacer autocompletado / salir de modo sugerencia / limpiar entrada | `Escape` |
| Limpiar pantalla | `Ctrl+L` |
| Salir | `Ctrl+C` / `Ctrl+D` |
## Solución de problemas
Si tienes problemas ejecutando Obsidian CLI:
- Asegúrate de estar usando la última [[Actualizar Obsidian|versión del instalador de Obsidian]] (1.12.4 o superior).
- Reinicia tu terminal después de registrar la CLI para que los cambios en el PATH surtan efecto.
- Obsidian debe estar en ejecución. La CLI se conecta a la instancia de Obsidian en ejecución. Si Obsidian no está en ejecución, el primer comando de la CLI debería iniciar la aplicación.
### Windows
Obsidian CLI en Windows requiere el instalador de Obsidian 1.12.4+. Consulta [[Actualizar Obsidian|Actualización de la versión del instalador]].
Windows usa un redirector de terminal que conecta Obsidian a stdin/stdout correctamente. Esto es necesario porque Obsidian normalmente se ejecuta como una aplicación GUI que es incompatible con las salidas de terminal en Windows. Cuando instalas Obsidian 1.12.4+, el redirector de terminal `Obsidian.com` se agregará en la carpeta donde instalaste el archivo `Obsidian.exe`.
### macOS
El registro de la CLI agrega el directorio binario de Obsidian a tu PATH a través de `~/.zprofile`. Si tienes problemas, verifica lo siguiente:
Tu archivo `~/.zprofile` debería contener la siguiente línea. Si falta, puedes agregarla manualmente:
```
export PATH="$PATH:/Applications/Obsidian.app/Contents/MacOS"
```
#### Shells alternativos
El registro de la CLI solo modifica `~/.zprofile`, que es usado por zsh (el shell predeterminado de macOS). Si usas un shell diferente, agrega el directorio binario de Obsidian al archivo de configuración de tu shell manualmente:
- Bash: agrega `export PATH="$PATH:/Applications/Obsidian.app/Contents/MacOS"` a `~/.bash_profile`
- Fish: ejecuta `fish_add_path /Applications/Obsidian.app/Contents/MacOS`
### Linux
El registro de la CLI crea un enlace simbólico en `/usr/local/bin/obsidian` que apunta al binario de Obsidian (requiere sudo).
#### AppImage
Para instalaciones AppImage, el enlace simbólico apunta al archivo `.AppImage` en lugar del binario interno, ya que la ruta de montaje cambia con cada inicio. Si sudo falla, el enlace simbólico se crea en `~/.local/bin/obsidian` como alternativa. Si tienes problemas, verifica lo siguiente.
Comprueba que el enlace simbólico existe y apunta al binario correcto:
```
ls -l /usr/local/bin/obsidian
```
Si el enlace simbólico falta, créalo manualmente:
```
sudo ln -s /path/to/obsidian /usr/local/bin/obsidian
```
Si el enlace simbólico fue creado en `~/.local/bin/` en su lugar, asegúrate de que ese directorio esté en tu PATH. Agrega lo siguiente a tu `~/.bashrc` o `~/.zshrc`:
```
export PATH="$PATH:$HOME/.local/bin"
```
Si el enlace simbólico se rompe después de mover o renombrar el archivo `.AppImage`, vuelve a registrar la CLI o actualiza el enlace simbólico manualmente.
#### Snap
El paquete Snap almacena los datos de las compilaciones Insider en su propio directorio de datos de usuario. Si la CLI no detecta el `.asar` de la versión Insider, establece `XDG_CONFIG_HOME` para apuntar a la ruta de configuración de Snap:
```
export XDG_CONFIG_HOME="$HOME/snap/obsidian/current/.config"
```
Agrega esto a tu `~/.bashrc` o `~/.zshrc` para hacerlo persistente.
#### Flatpak
Obsidian intenta hacer esto automáticamente, pero a continuación están las instrucciones manuales. Si es una instalación del sistema:
```
ln -s /var/lib/flatpak/exports/bin/md.obsidian.Obsidian ~/.local/bin/obsidian
```
Si es una instalación de usuario:
```
ln -s ~/.local/share/flatpak/exports/bin/md.obsidian.Obsidian ~/.local/bin/obsidian
```