A CLI do Obsidian é uma interface de linha de comandos que permite controlar o Obsidian a partir do terminal para scripting, automação e integração com ferramentas externas.
Tudo o que pode fazer no Obsidian pode fazer a partir da linha de comandos. A CLI do Obsidian inclui até [[#Comandos para programadores|comandos para programadores]] para aceder a ferramentas de desenvolvimento, inspecionar elementos, tirar capturas de ecrã, recarregar plugins e muito mais.
![[obsidian-cli.mp4#interface]]
> [!warning] Requer o instalador do Obsidian 1.12
> A utilização da CLI requer o instalador do Obsidian 1.12. Consulte o [[Atualizar Obsidian#Atualizações do instalador|guia de atualização da versão do instalador]].
## Instalar a CLI do Obsidian
Atualize para a versão mais recente do [[Atualizar Obsidian|instalador do Obsidian]] (1.12.7+).
Ative a CLI do Obsidian no Obsidian:
1. Vá a **Definições** → **Geral**.
2. Ative **Interface de linha de comandos**.
3. Siga a instrução para registar a CLI do Obsidian.
Se encontrar problemas ao instalar a CLI do Obsidian, consulte [[#Resolução de problemas]].
## Começar
A CLI do Obsidian suporta tanto comandos individuais como uma interface de utilizador de terminal (TUI) com ajuda interativa e preenchimento automático.
> [!info] A aplicação Obsidian tem de estar em execução
> A CLI do Obsidian requer que a aplicação Obsidian esteja em execução. Se o Obsidian não estiver em execução, o primeiro comando que executar inicia o Obsidian.
>
> Procura sincronizar sem a aplicação de ambiente de trabalho? Consulte [[Obsidian Headless|Obsidian Headless]].
### Executar um comando
Execute um comando individual sem abrir a TUI:
```shell
# Executar o comando de ajuda
obsidian help
```
### Usar a interface de terminal
Use a TUI digitando `obsidian`. Os comandos subsequentes podem ser introduzidos sem `obsidian`.
```shell
# Abrir a TUI, depois executar ajuda
obsidian
help
```
A TUI suporta preenchimento automático, histórico de comandos e pesquisa inversa. Use `Ctrl+R` para pesquisar o histórico de comandos. Consulte [[#Atalhos de teclado]] para todos os atalhos disponíveis.
## Exemplos
Aqui estão alguns exemplos do que a CLI do Obsidian pode fazer.
### Uso diário
```shell
# Abrir a nota diária de hoje
obsidian daily
# Adicionar uma tarefa à nota diária
obsidian daily:append content="- [ ] Comprar mercearias"
# Pesquisar no cofre
obsidian search query="notas de reunião"
# Ler o ficheiro ativo
obsidian read
# Listar todas as tarefas da nota diária
obsidian tasks daily
# Criar uma nova nota a partir de um modelo
obsidian create name="Viagem a Paris" template=Viagem
# Listar todas as etiquetas no cofre com contagens
obsidian tags counts
# Comparar duas versões de um ficheiro
obsidian diff file=README from=1 to=3
```
### Para programadores
Muitos [[#Comandos para programadores]] estão disponíveis para desenvolvimento de plugins e temas. Estes comandos permitem que ferramentas de codificação com agentes testem e depurem automaticamente.
```shell
# Abrir ferramentas de desenvolvimento
obsidian devtools
# Recarregar um plugin da comunidade em desenvolvimento
obsidian plugin:reload id=my-plugin
# Tirar uma captura de ecrã da aplicação
obsidian dev:screenshot path=screenshot.png
# Executar JavaScript na consola da aplicação
obsidian eval code="app.vault.getFiles().length"
```
## Como fazer
### Usar parâmetros e flags
Os comandos podem usar **parâmetros** e **flags**. A maioria dos comandos não requer quaisquer parâmetros ou flags. Os parâmetros obrigatórios estão marcados como `required`. Por exemplo:
```shell
# Criar uma nova nota usando o nome predefinido "Sem título"
obsidian create
```
Um **parâmetro** recebe um valor, escrito como `parâmetro=valor`. Se o valor tiver espaços, envolva-o em aspas:
```shell
# Criar uma nova nota chamada "Nota" com conteúdo "Olá mundo"
obsidian create name=Nota content="Olá mundo"
```
Uma **flag** é um interruptor booleano sem valor. Inclua-a para ativar, por exemplo `open` e `overwrite` são flags:
```shell
# Criar uma nota e abri-la
obsidian create name=Nota content="Olá" open overwrite
```
Para conteúdo multilinha use `\n` para nova linha. Use `\t` para tabulação.
```bash
obsidian create name=Nota content="# Título\n\nTexto do corpo"
```
### Direcionar para um cofre
Se o diretório de trabalho atual do terminal for uma pasta de cofre, esse cofre é usado por predefinição. Caso contrário, é usado o cofre atualmente ativo.
Use `vault=<nome>` ou `vault=<id>` para direcionar para um cofre específico. Este deve ser o primeiro parâmetro antes do comando:
```shell
obsidian vault=Notas daily
obsidian vault="O meu Cofre" search query="teste"
```
Na TUI, use `vault:open <nome>` ou `<id>` para mudar para um cofre diferente.
### Direcionar para um ficheiro
Muitos comandos aceitam parâmetros `file` e `path` para direcionar para um ficheiro específico. Se nenhum for fornecido, o comando usa por predefinição o ficheiro ativo.
- `file=<nome>` resolve o ficheiro usando a mesma resolução de ligações que os [[Ligações internas|links wiki]], correspondendo pelo nome do ficheiro sem requerer o caminho completo ou extensão.
- `path=<caminho>` requer o caminho exato a partir da raiz do cofre, e.g. `pasta/nota.md`.
```shell
# Estes são equivalentes se "Receita.md" for o único ficheiro com esse nome
obsidian read file=Receita
obsidian read path="Modelos/Receita.md"
```
### Copiar saída
Adicione `--copy` a qualquer comando para copiar a saída para a área de transferência:
```shell
read --copy
search query="TODO" --copy
```
## Comandos gerais
### `help`
Mostrar lista de todos os comandos disponíveis.
| Parâmetro | Descrição |
| ----------- | -------------------------------------- |
| `<comando>` | Mostrar ajuda para um comando específico. |
### `version`
Mostrar versão do Obsidian.
### `reload`
Recarregar a janela da aplicação.
### `restart`
Reiniciar a aplicação.
## Bases
Comandos para [[Introdução ao Bases|Bases]].
### `bases`
Listar todos os ficheiros `.base` no cofre.
### `base:views`
Listar vistas no ficheiro base atual.
### `base:create`
Criar um novo item numa base. Usa por predefinição a vista de base ativa se nenhum ficheiro for especificado.
```bash
file=<nome> # nome do ficheiro base
path=<caminho> # caminho do ficheiro base
view=<nome> # nome da vista
name=<nome> # nome do novo ficheiro
content=<texto> # conteúdo inicial
open # abrir ficheiro após criação
newtab # abrir num novo separador
```
### `base:query`
Consultar uma base e devolver resultados.
```bash
file=<nome> # nome do ficheiro base
path=<caminho> # caminho do ficheiro base
view=<nome> # nome da vista a consultar
format=json|csv|tsv|md|paths # formato de saída (predefinido: json)
```
## Marcadores
Comandos para [[Marcadores]].
### `bookmarks`
Listar marcadores.
```bash
total # devolver contagem de marcadores
verbose # incluir tipos de marcadores
format=json|tsv|csv # formato de saída (predefinido: tsv)
```
### `bookmark`
Adicionar um marcador.
```bash
file=<caminho> # ficheiro a marcar
subpath=<subcaminho> # subcaminho (cabeçalho ou bloco) dentro do ficheiro
folder=<caminho> # pasta a marcar
search=<consulta> # consulta de pesquisa a marcar
url=<url> # URL a marcar
title=<título> # título do marcador
```
## Paleta de comandos
Comandos para [[Paleta de comando]] e [[Atalhos de teclado]]. Isto inclui todos os comandos registados por plugins.
### `commands`
Listar IDs de comandos disponíveis.
```bash
filter=<prefixo> # filtrar por prefixo de ID
```
### `command`
Executar um comando do Obsidian.
```bash
id=<id-comando> # (obrigatório) ID do comando a executar
```
### `hotkeys`
Listar atalhos de teclado para todos os comandos.
```bash
total # devolver contagem de atalhos
verbose # mostrar se o atalho é personalizado
format=json|tsv|csv # formato de saída (predefinido: tsv)
```
### `hotkey`
Obter atalho de teclado para um comando.
```bash
id=<id-comando> # (obrigatório) ID do comando
verbose # mostrar se é personalizado ou predefinido
```
## Notas diárias
Comandos para [[Notas diárias]].
### `daily`
Abrir nota diária.
```bash
paneType=tab|split|window # tipo de painel para abrir
```
### `daily:path`
Obter caminho da nota diária. Devolve o caminho esperado mesmo que o ficheiro ainda não tenha sido criado.
### `daily:read`
Ler conteúdos da nota diária.
### `daily:append`
Anexar conteúdo à nota diária.
```bash
content=<texto> # (obrigatório) conteúdo a anexar
paneType=tab|split|window # tipo de painel para abrir
inline # anexar sem nova linha
open # abrir ficheiro após adicionar
```
### `daily:prepend`
Antepor conteúdo à nota diária.
```bash
content=<texto> # (obrigatório) conteúdo a antepor
paneType=tab|split|window # tipo de painel para abrir
inline # antepor sem nova linha
open # abrir ficheiro após adicionar
```
## Histórico de ficheiros
### `diff`
Listar ou comparar versões da [[Recuperação de ficheiros]] local e do [[Introdução ao Obsidian Sync|Sync]]. As versões são numeradas da mais recente à mais antiga.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
from=<n> # número da versão de origem
to=<n> # número da versão de destino
filter=local|sync # filtrar por origem da versão
```
**Exemplos:**
```shell
# Listar todas as versões do ficheiro ativo
diff
# Listar todas as versões de um ficheiro específico
diff file=Receita
# Comparar a versão mais recente com o ficheiro atual
diff file=Receita from=1
# Comparar duas versões
diff file=Receita from=2 to=1
# Mostrar apenas versões do Sync
diff filter=sync
```
### `history`
Listar versões apenas da [[Recuperação de ficheiros]]. Consulte [[#Sync|sync:history]] para o comando equivalente do Sync.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
### `history:list`
Listar todos os ficheiros com histórico local.
### `history:read`
Ler uma versão do histórico local.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
version=<n> # número da versão (predefinido: 1)
```
### `history:restore`
Restaurar uma versão do histórico local.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
version=<n> # (obrigatório) número da versão
```
### `history:open`
Abrir recuperação de ficheiros.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
## Ficheiros e pastas
### `file`
Mostrar informação do ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
Exemplo:
```
path Notas/Receita.md
name Receita
extension md
size 1024
created 1700000000000
modified 1700001000000
```
### `files`
Listar ficheiros no cofre.
```bash
folder=<caminho> # filtrar por pasta
ext=<extensão> # filtrar por extensão
total # devolver contagem de ficheiros
```
### `folder`
Mostrar informação da pasta.
```bash
path=<caminho> # (obrigatório) caminho da pasta
info=files|folders|size # devolver apenas informação específica
```
### `folders`
Listar pastas no cofre.
```bash
folder=<caminho> # filtrar por pasta pai
total # devolver contagem de pastas
```
### `open`
Abrir um ficheiro.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
newtab # abrir num novo separador
```
### `create`
Criar ou substituir um ficheiro.
```bash
name=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
content=<texto> # conteúdo inicial
template=<nome> # modelo a usar
overwrite # substituir se o ficheiro existir
open # abrir ficheiro após criação
newtab # abrir num novo separador
```
### `read`
Ler conteúdos do ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
### `append`
Anexar conteúdo a um ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
content=<texto> # (obrigatório) conteúdo a anexar
inline # anexar sem nova linha
```
### `prepend`
Antepor conteúdo após metadados iniciais (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
content=<texto> # (obrigatório) conteúdo a antepor
inline # antepor sem nova linha
```
### `move`
Mover ou renomear um ficheiro (predefinido: ficheiro ativo). Isto atualizará automaticamente as [[Ligações internas]] se estiver ativado nas [[Definições#Atualizar sempre os links internos|definições do cofre]].
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
to=<caminho> # (obrigatório) pasta ou caminho de destino
```
### `rename`
Renomear um ficheiro (predefinido: ficheiro ativo). A extensão do ficheiro é preservada automaticamente se omitida do novo nome. Use [[#`move`|move]] para renomear e mover um ficheiro ao mesmo tempo. Isto atualizará automaticamente as [[Ligações internas]] se estiver ativado nas [[Definições#Atualizar sempre os links internos|definições do cofre]].
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
name=<nome> # (obrigatório) novo nome do ficheiro
```
### `delete`
Eliminar um ficheiro (predefinido: ficheiro ativo, lixo por predefinição).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
permanent # ignorar lixo, eliminar permanentemente
```
## Ligações
Comandos para [[Links inversos]] e [[Links Externos]].
### `backlinks`
Listar links inversos para um ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro alvo
path=<caminho> # caminho do ficheiro alvo
counts # incluir contagens de ligações
total # devolver contagem de links inversos
format=json|tsv|csv # formato de saída (predefinido: tsv)
```
### `links`
Listar ligações de saída de um ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
total # devolver contagem de ligações
```
### `unresolved`
Listar ligações não resolvidas no cofre.
```bash
total # devolver contagem de ligações não resolvidas
counts # incluir contagens de ligações
verbose # incluir ficheiros de origem
format=json|tsv|csv # formato de saída (predefinido: tsv)
```
### `orphans`
Listar ficheiros sem ligações de entrada.
```bash
total # devolver contagem de órfãos
```
### `deadends`
Listar ficheiros sem ligações de saída.
```bash
total # devolver contagem de becos sem saída
```
## Esquema
Comandos para [[Índice]].
### `outline`
Mostrar cabeçalhos para o ficheiro atual.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
format=tree|md|json # formato de saída (predefinido: tree)
total # devolver contagem de cabeçalhos
```
## Plugins
Comandos para [[Plugins Base]] e [[Plugins da comunidade]].
### `plugins`
Listar plugins instalados.
```bash
filter=core|community # filtrar por tipo de plugin
versions # incluir números de versão
format=json|tsv|csv # formato de saída (predefinido: tsv)
```
### `plugins:enabled`
Listar plugins ativados.
```bash
filter=core|community # filtrar por tipo de plugin
versions # incluir números de versão
format=json|tsv|csv # formato de saída (predefinido: tsv)
```
### `plugins:restrict`
Alternar ou verificar o modo restrito.
```bash
on # ativar modo restrito
off # desativar modo restrito
```
### `plugin`
Obter informação do plugin.
```bash
id=<id-plugin> # (obrigatório) ID do plugin
```
### `plugin:enable`
Ativar um plugin.
```bash
id=<id> # (obrigatório) ID do plugin
filter=core|community # tipo de plugin
```
### `plugin:disable`
Desativar um plugin.
```bash
id=<id> # (obrigatório) ID do plugin
filter=core|community # tipo de plugin
```
### `plugin:install`
Instalar um plugin da comunidade.
```bash
id=<id> # (obrigatório) ID do plugin
enable # ativar após instalação
```
### `plugin:uninstall`
Desinstalar um plugin da comunidade.
```bash
id=<id> # (obrigatório) ID do plugin
```
### `plugin:reload`
Recarregar um plugin (para programadores).
```bash
id=<id> # (obrigatório) ID do plugin
```
## Propriedades
Comandos relacionados com [[Propriedades]].
### `aliases`
Listar alcunhas no cofre. Use `active` ou `file`/`path` para mostrar alcunhas de um ficheiro específico.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
total # devolver contagem de alcunhas
verbose # incluir caminhos de ficheiros
active # mostrar alcunhas do ficheiro ativo
```
### `properties`
Listar propriedades no cofre. Use `active` ou `file`/`path` para mostrar propriedades de um ficheiro específico.
```bash
file=<nome> # mostrar propriedades do ficheiro
path=<caminho> # mostrar propriedades do caminho
name=<nome> # obter contagem de propriedade específica
sort=count # ordenar por contagem (predefinido: nome)
format=yaml|json|tsv # formato de saída (predefinido: yaml)
total # devolver contagem de propriedades
counts # incluir contagens de ocorrências
active # mostrar propriedades do ficheiro ativo
```
### `property:set`
Definir uma propriedade num ficheiro (predefinido: ficheiro ativo).
```bash
name=<nome> # (obrigatório) nome da propriedade
value=<valor> # (obrigatório) valor da propriedade
type=text|list|number|checkbox|date|datetime # tipo de propriedade
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
### `property:remove`
Remover uma propriedade de um ficheiro (predefinido: ficheiro ativo).
```bash
name=<nome> # (obrigatório) nome da propriedade
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
### `property:read`
Ler um valor de propriedade de um ficheiro (predefinido: ficheiro ativo).
```bash
name=<nome> # (obrigatório) nome da propriedade
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
## Publish
Comandos para [[Introdução ao Obsidian Publish|Obsidian Publish]].
### `publish:site`
Mostrar informação do site publish (slug, URL).
### `publish:list`
Listar ficheiros publicados.
```bash
total # devolver contagem de ficheiros publicados
```
### `publish:status`
Listar alterações de publicação.
```bash
total # devolver contagem de alterações
new # mostrar apenas ficheiros novos
changed # mostrar apenas ficheiros alterados
deleted # mostrar apenas ficheiros eliminados
```
### `publish:add`
Publicar um ficheiro ou todos os ficheiros alterados (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
changed # publicar todos os ficheiros alterados
```
### `publish:remove`
Despublicar um ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
### `publish:open`
Abrir ficheiro no site publicado (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
## Notas aleatórias
Comandos para [[Nota aleatória]].
### `random`
Abrir uma nota aleatória.
```bash
folder=<caminho> # limitar a pasta
newtab # abrir num novo separador
```
### `random:read`
Ler uma nota aleatória (inclui caminho).
```bash
folder=<caminho> # limitar a pasta
```
## Pesquisa
Comandos para [[Pesquisar]].
### `search`
Pesquisar texto no cofre. Devolve caminhos de ficheiros correspondentes.
```bash
query=<texto> # (obrigatório) consulta de pesquisa
path=<pasta> # limitar a pasta
limit=<n> # máximo de ficheiros
format=text|json # formato de saída (predefinido: text)
total # devolver contagem de correspondências
case # diferencia maiúsculas de minúsculas
```
### `search:context`
Pesquisar com contexto de linha correspondente. Devolve saída estilo grep `caminho:linha: texto`.
```bash
query=<texto> # (obrigatório) consulta de pesquisa
path=<pasta> # limitar a pasta
limit=<n> # máximo de ficheiros
format=text|json # formato de saída (predefinido: text)
case # diferencia maiúsculas de minúsculas
```
### `search:open`
Abrir vista de pesquisa.
```bash
query=<texto> # consulta de pesquisa inicial
```
## Sync
Comandos para [[Introdução ao Obsidian Sync|Obsidian Sync]].
> [!tip] Sincronizar sem a aplicação de ambiente de trabalho
> Estes comandos controlam o Sync dentro da aplicação Obsidian em execução. Para sincronizar cofres a partir da linha de comandos sem a aplicação de ambiente de trabalho, consulte [[Sync sem interface]].
### `sync`
Pausar ou retomar o sync.
```bash
on # retomar sync
off # pausar sync
```
### `sync:status`
Mostrar estado e utilização do sync.
### `sync:history`
Listar histórico de versões do sync para um ficheiro (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
total # devolver contagem de versões
```
### `sync:read`
Ler uma versão do sync (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
version=<n> # (obrigatório) número da versão
```
### `sync:restore`
Restaurar uma versão do sync (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
version=<n> # (obrigatório) número da versão
```
### `sync:open`
Abrir histórico do sync (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
```
### `sync:deleted`
Listar ficheiros eliminados no sync.
```bash
total # devolver contagem de ficheiros eliminados
```
## Etiquetas
Comandos para [[Etiquetas]].
### `tags`
Listar etiquetas no cofre. Use `active` ou `file`/`path` para mostrar etiquetas de um ficheiro específico.
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
sort=count # ordenar por contagem (predefinido: nome)
total # devolver contagem de etiquetas
counts # incluir contagens de etiquetas
format=json|tsv|csv # formato de saída (predefinido: tsv)
active # mostrar etiquetas do ficheiro ativo
```
### `tag`
Obter informação da etiqueta.
```bash
name=<etiqueta> # (obrigatório) nome da etiqueta
total # devolver contagem de ocorrências
verbose # incluir lista de ficheiros e contagem
```
## Tarefas
Comandos para gestão de tarefas.
### `tasks`
Listar tarefas no cofre. Use `active` ou `file`/`path` para mostrar tarefas de um ficheiro específico.
```bash
file=<nome> # filtrar por nome de ficheiro
path=<caminho> # filtrar por caminho de ficheiro
status="<char>" # filtrar por carácter de estado
total # devolver contagem de tarefas
done # mostrar tarefas concluídas
todo # mostrar tarefas por concluir
verbose # agrupar por ficheiro com números de linha
format=json|tsv|csv # formato de saída (predefinido: text)
active # mostrar tarefas do ficheiro ativo
daily # mostrar tarefas da nota diária
```
**Exemplos:**
```bash
# Listar todas as tarefas no cofre
tasks
# Listar tarefas por concluir no cofre
tasks todo
# Listar tarefas concluídas de um ficheiro específico
tasks file=Receita done
# Listar tarefas da nota diária de hoje
tasks daily
# Contar tarefas na nota diária
tasks daily total
# Listar tarefas com caminhos de ficheiros e números de linha
tasks verbose
# Filtrar por estado personalizado (aspas para caracteres especiais)
tasks 'status=?'
```
### `task`
Mostrar ou atualizar uma tarefa.
```bash
ref=<caminho:linha> # referência da tarefa (caminho:linha)
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
line=<n> # número da linha
status="<char>" # definir carácter de estado
toggle # alternar estado da tarefa
daily # nota diária
done # marcar como concluída
todo # marcar como por fazer
```
**Exemplos:**
```bash
# Mostrar informação da tarefa
task file=Receita line=8
task ref="Receita.md:8"
# Alternar conclusão da tarefa
task ref="Receita.md:8" toggle
# Alternar tarefa na nota diária
task daily line=3 toggle
# Definir estado da tarefa
task file=Receita line=8 done # → [x]
task file=Receita line=8 todo # → [ ]
task file=Receita line=8 status=- # → [-]
task daily line=3 done # Marcar tarefa da nota diária como concluída
```
## Modelos
Comandos para [[Modelos]].
### `templates`
Listar modelos.
```bash
total # devolver contagem de modelos
```
### `template:read`
Ler conteúdo do modelo.
```bash
name=<modelo> # (obrigatório) nome do modelo
title=<título> # título para resolução de variáveis
resolve # resolver variáveis do modelo
```
### `template:insert`
Inserir modelo no ficheiro ativo.
```bash
name=<modelo> # (obrigatório) nome do modelo
```
**Notas:**
- A opção `resolve` processa variáveis `{{date}}`, `{{time}}`, `{{title}}`
- Use `create path=<caminho> template=<nome>` para criar um ficheiro com um modelo
## Temas e excertos
Comandos para [[Temas]] e [[Fragmentos CSS]].
### `themes`
Listar temas instalados.
```bash
versions # incluir números de versão
```
### `theme`
Mostrar tema ativo ou obter informação.
```bash
name=<nome> # nome do tema para detalhes
```
### `theme:set`
Definir tema ativo.
```bash
name=<nome> # (obrigatório) nome do tema (vazio para predefinido)
```
### `theme:install`
Instalar um tema da comunidade.
```bash
name=<nome> # (obrigatório) nome do tema
enable # ativar após instalação
```
### `theme:uninstall`
Desinstalar um tema.
```bash
name=<nome> # (obrigatório) nome do tema
```
### `snippets`
Listar excertos CSS instalados.
### `snippets:enabled`
Listar excertos CSS ativados.
### `snippet:enable`
Ativar um excerto CSS.
```bash
name=<nome> # (obrigatório) nome do excerto
```
### `snippet:disable`
Desativar um excerto CSS.
```bash
name=<nome> # (obrigatório) nome do excerto
```
## Notas únicas
Comandos para [[Criador de notas únicas]].
### `unique`
Criar nota única.
```bash
name=<texto> # nome da nota
content=<texto> # conteúdo inicial
paneType=tab|split|window # tipo de painel para abrir
open # abrir ficheiro após criação
```
## Cofre
### `vault`
Mostrar informação do cofre.
```bash
info=name|path|files|folders|size # devolver apenas informação específica
```
### `vaults`
Listar cofres conhecidos.
```bash
total # devolver contagem de cofres
verbose # incluir caminhos dos cofres
```
### `vault:open`
Mudar para um cofre diferente (apenas TUI).
```bash
name=<nome> # (obrigatório) nome do cofre
```
## Visualizador web
Comandos para [[Visualizador web]].
### `web`
Abrir URL no visualizador web.
```bash
url=<url> # (obrigatório) URL a abrir
newtab # abrir num novo separador
```
## Contagem de palavras
Comandos para [[Contagem de palavras]].
### `wordcount`
Contar palavras e caracteres (predefinido: ficheiro ativo).
```bash
file=<nome> # nome do ficheiro
path=<caminho> # caminho do ficheiro
words # devolver apenas contagem de palavras
characters # devolver apenas contagem de caracteres
```
## Área de trabalho
Comandos para [[Área de trabalho]] e o plugin [[Áreas de trabalho]].
### `workspace`
Mostrar árvore da área de trabalho.
```bash
ids # incluir IDs dos itens da área de trabalho
```
### `workspaces`
Listar áreas de trabalho guardadas.
```bash
total # devolver contagem de áreas de trabalho
```
### `workspace:save`
Guardar esquema atual como área de trabalho.
```bash
name=<nome> # nome da área de trabalho
```
### `workspace:load`
Carregar uma área de trabalho guardada.
```bash
name=<nome> # (obrigatório) nome da área de trabalho
```
### `workspace:delete`
Eliminar uma área de trabalho guardada.
```bash
name=<nome> # (obrigatório) nome da área de trabalho
```
### `tabs`
Listar separadores abertos.
```bash
ids # incluir IDs dos separadores
```
### `tab:open`
Abrir um novo separador.
```bash
group=<id> # ID do grupo de separadores
file=<caminho> # ficheiro a abrir
view=<tipo> # tipo de vista a abrir
```
### `recents`
Listar ficheiros abertos recentemente.
```bash
total # devolver contagem de ficheiros recentes
```
## Comandos para programadores
Comandos para ajudar a desenvolver [[Plugins da comunidade]] e [[Temas]]. Saiba mais visitando a [Documentação para Programadores do Obsidian](https://docs.obsidian.md).
### `devtools`
Alternar ferramentas de desenvolvimento Electron.
### `dev:debug`
Anexar/desanexar depurador do Chrome DevTools Protocol.
```bash
on # anexar depurador
off # desanexar depurador
```
### `dev:cdp`
Executar um comando do Chrome DevTools Protocol.
```bash
method=<CDP.method> # (obrigatório) método CDP a chamar
params=<json> # parâmetros do método como JSON
```
### `dev:errors`
Mostrar erros JavaScript capturados.
```bash
clear # limpar o buffer de erros
```
### `dev:screenshot`
Tirar uma captura de ecrã (devolve PNG em base64).
```bash
path=<ficheiro> # caminho do ficheiro de saída
```
### `dev:console`
Mostrar mensagens de consola capturadas.
```bash
limit=<n> # máximo de mensagens a mostrar (predefinido 50)
level=log|warn|error|info|debug # filtrar por nível de log
clear # limpar o buffer da consola
```
### `dev:css`
Inspecionar CSS com localizações de origem.
```bash
selector=<css> # (obrigatório) seletor CSS
prop=<nome> # filtrar por nome de propriedade
```
### `dev:dom`
Consultar elementos DOM.
```bash
selector=<css> # (obrigatório) seletor CSS
attr=<nome> # obter valor do atributo
css=<prop> # obter valor da propriedade CSS
total # devolver contagem de elementos
text # devolver conteúdo de texto
inner # devolver innerHTML em vez de outerHTML
all # devolver todas as correspondências em vez da primeira
```
### `dev:mobile`
Alternar emulação móvel.
```bash
on # ativar emulação móvel
off # desativar emulação móvel
```
### `eval`
Executar JavaScript e devolver resultado.
```bash
code=<javascript> # (obrigatório) código JavaScript a executar
```
## Atalhos de teclado
Estes atalhos estão disponíveis na [[#Usar a interface de terminal|TUI]].
### Navegação
| Ação | Atalho |
| -------------------------------------------------------- | --------------- |
| Mover cursor para a esquerda | `←` / `Ctrl+B` |
| Mover cursor para a direita (aceita sugestão no fim da linha) | `→` / `Ctrl+F` |
| Saltar para o início da linha | `Ctrl+A` |
| Saltar para o fim da linha | `Ctrl+E` |
| Recuar uma palavra | `Alt+B` |
| Avançar uma palavra | `Alt+F` |
### Edição
| Ação | Atalho |
| -------------------------------- | --------------------------- |
| Eliminar até ao início da linha | `Ctrl+U` |
| Eliminar até ao fim da linha | `Ctrl+K` |
| Eliminar palavra anterior | `Ctrl+W` / `Alt+Backspace` |
### Preenchimento automático
| Ação | Atalho |
| --------------------------------------------------------- | ------------ |
| Entrar no modo de sugestão / aceitar sugestão selecionada | `Tab` |
| Sair do modo de sugestão | `Shift+Tab` |
| Entrar no modo de sugestão (a partir de entrada nova) | `↓` |
| Aceitar primeira/sugestão selecionada (no fim da linha) | `→` |
### Histórico
| Ação | Atalho |
| ----------------------------------------------------------------- | --------------- |
| Entrada anterior do histórico / navegar sugestões para cima | `↑` / `Ctrl+P` |
| Entrada seguinte do histórico / navegar sugestões para baixo | `↓` / `Ctrl+N` |
| Pesquisa inversa no histórico (escreva para filtrar, `Ctrl+R` para ciclar) | `Ctrl+R` |
### Outros
| Ação | Atalho |
| ------------------------------------------------------------- | -------------------- |
| Executar comando ou aceitar sugestão | `Enter` |
| Anular preenchimento automático / sair do modo de sugestão / limpar entrada | `Escape` |
| Limpar ecrã | `Ctrl+L` |
| Sair | `Ctrl+C` / `Ctrl+D` |
## Resolução de problemas
Se estiver a ter dificuldades em executar a CLI do Obsidian:
- Certifique-se de que está a usar a versão mais recente do [[Atualizar Obsidian|instalador do Obsidian]] (1.12.7 ou superior).
- Se acabou de atualizar o Obsidian de uma versão anterior, desative a definição da CLI e ative-a novamente, depois permita que o Obsidian efetue o registo automático do PATH.
- Reinicie o terminal após registar a CLI para que as alterações ao PATH entrem em vigor.
- O Obsidian tem de estar em execução. A CLI liga-se à instância do Obsidian em execução.
### Windows
A CLI do Obsidian no Windows requer o instalador do Obsidian 1.12.7+. Consulte [[Atualizar Obsidian|Atualização da versão do instalador]].
O Windows usa um redirecionador de terminal que liga o Obsidian ao stdin/stdout corretamente. Isto é necessário porque o Obsidian normalmente executa como uma aplicação GUI que é incompatível com saídas de terminal no Windows. Quando instala o Obsidian 1.12.7+, o redirecionador de terminal `Obsidian.com` será adicionado na pasta onde instalou o ficheiro `Obsidian.exe`.
O registo da CLI adiciona o Obsidian à variável PATH do utilizador, que só entra em vigor após reiniciar o terminal.
### macOS
O registo da CLI cria um symlink em `/usr/local/bin/obsidian` apontando para o binário da CLI incluído na aplicação. Isto requer privilégios de administrador — será solicitado através de uma caixa de diálogo do sistema.
Verifique que o symlink existe e aponta para o binário correto:
```
ls -l /usr/local/bin/obsidian
```
Se o symlink estiver em falta, crie-o manualmente:
```
sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian-cli /usr/local/bin/obsidian
```
> [!note] Se registou previamente a CLI com uma versão mais antiga do Obsidian, pode ter uma entrada de PATH remanescente em `~/.zprofile`. O novo processo de registo remove isto automaticamente, mas se permanecer, pode eliminar com segurança as linhas que começam com `# Added by Obsidian` de `~/.zprofile`.
### Linux
O registo da CLI copia o binário da CLI para `~/.local/bin/obsidian`. Isto é feito porque alguns métodos de instalação no Linux executam a partir de diretórios temporários que não podem ter symlinks persistentes.
Certifique-se de que `~/.local/bin` está no seu PATH. Adicione o seguinte ao seu `~/.bashrc` ou `~/.zshrc` se não estiver:
```
export PATH="$PATH:$HOME/.local/bin"
```
Verifique que o binário existe:
```
ls -l ~/.local/bin/obsidian
```
Se o binário estiver em falta, copie-o manualmente a partir do diretório de instalação do Obsidian:
```
cp /path/to/Obsidian/obsidian-cli ~/.local/bin/obsidian
chmod 755 ~/.local/bin/obsidian
```