Communitygithub.com

gmickel/obsidian-skill

Habilidade de agente para a CLI do Obsidian (1.12+). Leia, crie, pesquise e organize notas em cofres do Obsidian.

O que é obsidian-skill?

Essa habilidade permite que agentes de IA (como Claude Code, Cursor ou Codex) interajam com a interface de linha de comando (CLI) oficial do Obsidian para realizar operações que dependem do aplicativo em execução, como ler, pesquisar, anexar conteúdo a notas, gerenciar tarefas, propriedades e interagir com o espaço de trabalho ativo. Ela resolve automaticamente o caminho correto do executável da CLI do Obsidian, contornando diferenças de plataforma e nomeação. A habilidade orienta o agente a usar o cofre de destino explicitamente, evitando caminhos fixos de máquina, e inclui salvaguardas importantes para preservar a sessão do host (não recarregar o Obsidian ou desabilitar plugins). Também fornece referências detalhadas para operações específicas, como manipulação de notas diárias, busca avançada e gerenciamento de plugins, sempre exigindo intenção explícita do usuário para ações destrutivas.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add gmickel/obsidian-skill

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

CLI do Obsidian

Use a CLI para comportamentos que dependem do aplicativo em execução do Obsidian, índices, configurações, registro de comandos ou runtime de desenvolvimento. Use ferramentas normais do sistema de arquivos para operações comuns de arquivos.

Resolver e verificar a CLI

Não assuma um único nome de executável. O registro e o empacotamento do Obsidian diferem por plataforma e versão, e binários de terceiros não relacionados podem usar o mesmo nome. Selecione um candidato somente quando sua verificação de version for bem-sucedida.

No 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 do Obsidian indisponível" >&2
  exit 1
}
"$OBSIDIAN_CLI" version

No 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 do Obsidian indisponível" }
& $OBSIDIAN_CLI version

Se a verificação falhar, peça ao usuário para abrir uma versão compatível do Obsidian, ativar Configurações > Geral > Interface de linha de comando, concluir o registro e reiniciar o terminal. Não instale o Obsidian, altere o PATH ou registre a CLI sem intenção explícita do usuário.

Use o executável resolvido no lugar de obsidian em todos os exemplos de referência:

"$OBSIDIAN_CLI" vaults
"$OBSIDIAN_CLI" help search

Aponte para o cofre com precisão

Use vault="<nome-ou-id>" sempre que o alvo for conhecido. Nunca incorpore um nome de cofre pessoal ou caminho de máquina nesta habilidade.

"$OBSIDIAN_CLI" vault="<nome-do-cofre>" search query="prazo do projeto" format=json
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" backlinks path="Projects/Plan.md" format=json

Use path= para um caminho exato relativo ao cofre. Use file= apenas quando a resolução de nome estilo wikilink do Obsidian for desejada. Coloque entre aspas valores que contenham caracteres especiais do shell ou espaços. Inspecione a ajuda ao vivo antes de confiar em sintaxe não mostrada pela versão instalada:

"$OBSIDIAN_CLI" help <comando>

Operações principais

# Ler e escrever
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" read path="Projects/Roadmap.md"
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" append path="Journal.md" content="- Nova entrada"

# Pesquisar e metadados
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" search query="API" limit=10 format=json
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" properties path="Projects/Roadmap.md"

# Nota diária configurada e tarefas indexadas
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" daily:append content="- 14h: Ligação" silent
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" tasks all todo

# Espaço de trabalho ao vivo
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" tabs ids
"$OBSIDIAN_CLI" vault="<nome-do-cofre>" workspace ids

Preserve a sessão do host

Nunca recarregue ou reinicie o aplicativo/janela do Obsidian a partir de uma sessão de agente. Nunca recarregue, desabilite ou desinstale o plugin que está hospedando a sessão atual do agente. Evite comandos equivalentes, JavaScript ou ações de ferramentas de desenvolvedor. Isso pode terminar a sessão e descartar trabalho em andamento.

Exija intenção explícita do usuário antes de exclusão permanente, restauração de histórico local ou Sync, publicação ou despublicação, instalação ou remoção de plugins/temas, alterações de modo restrito, ou chamadas mutantes de JavaScript/desenvolvedor. Prefira operações reversíveis. As referências de comando descrevem capacidades; elas não autorizam mutações.

Guias de referência

Leia apenas o guia relevante para a tarefa. Trate obsidian nos exemplos como o executável resolvido $OBSIDIAN_CLI e adicione vault="<nome-ou-id>" quando o alvo for conhecido.

TarefaReferência
Operações com notas, esboço, contagem de palavras, notas únicasreferences/note-operations.md
Pesquisa, tags, propriedades, backlinks, órfãos, links não resolvidosreferences/search-metadata.md
Notas diárias, tarefas, modelosreferences/daily-tasks-templates.md
Cofres, espaço de trabalho, favoritos, plugins, temas, Sync, Publicar, Bases, ferramentas de desenvolvedorreferences/vault-management.md

Habilidades Relacionadas