| name | obsidian-intelligence |
| triggers | ["obsidian","vault","knowledge graph","jsoncanvas","canvas","note linking","headless obsidian","ob sync","ob publish"] |
| description | Integração com Obsidian — vault automation, knowledge graph, canvas files, headless CLI e plugin API |
Obsidian Intelligence Skill
O que é
Obsidian é um sistema de gestão de conhecimento baseado em Markdown com grafo de links. Esta skill cobre:
- Vault automation via headless CLI (
obsidian-headless)
- Canvas/grafo via JSONCanvas spec
- Plugin API para integração TypeScript
- Web Clipper para captura estruturada
- Import de Notion, Roam, Evernote, Bear
Repos Oficiais (github.com/obsidianmd)
| Repo | Uso |
|---|
obsidian-api | TypeScript types para plugins — MetadataCache, Vault, Workspace |
obsidian-headless | CLI para sync/publish sem GUI — totalmente scriptável |
jsoncanvas | Spec aberta para canvas JSON — legível por agentes |
obsidian-clipper | Captura web com templates variáveis |
obsidian-importer | Migração de Notion/Roam/Evernote → Markdown |
obsidian-sample-plugin | Boilerplate TypeScript para plugins |
JSONCanvas — Estrutura para Agentes
{
"nodes": [
{ "id": "n1", "type": "text", "x": 0, "y": 0, "width": 200, "height": 100, "text": "# Ideia" },
{ "id": "n2", "type": "file", "x": 300, "y": 0, "width": 200, "height": 100, "file": "docs/prd.md" }
],
"edges": [
{ "id": "e1", "fromNode": "n1", "toNode": "n2", "label": "especifica" }
]
}
Tipos de nó: text, file, link, group
Cores: hex ou preset "1"(vermelho) "2"(laranja) "3"(amarelo) "4"(verde) "5"(ciano) "6"(roxo)
Obsidian Headless CLI — Comandos para Agentes
ob login
ob sync-setup
ob sync
ob sync --continuous
ob sync-status
ob publish-setup
ob publish
ob publish --dry-run
Modos de sync: bidirecional | pull-only | mirror-remote
Plugin API — Pontos Chave
import { Plugin, App, TFile } from 'obsidian';
class MeuPlugin extends Plugin {
async onload() {
const file = this.app.vault.getAbstractFileByPath('docs/prd.md') as TFile;
const content = await this.app.vault.read(file);
const meta = this.app.metadataCache.getFileCache(file);
const tags = meta?.tags;
const links = meta?.links;
this.addCommand({
id: 'meu-comando',
name: 'Executar ação',
callback: () => { }
});
}
}
Obsidian Clipper — Template Variables
---
source: {{url}}
date: {{date}}
author: {{author}}
tags: {{#tags}}{{.}}{{/tags}}
---
# {{title}}
{{content}}
Suporta if/for condicional e filtros — ideal para captura esquematizada.
Quando Usar
| Situação | Ação |
|---|
| Automatizar sync de vault | ob sync / ob sync --continuous |
| Publicar knowledge base | ob publish |
| Ler grafo de conhecimento em plugin | MetadataCache.getFileCache() |
| Criar representação visual de arquitetura | JSONCanvas |
| Migrar docs de Notion para vault | obsidian-importer |
| Captura estruturada da web | obsidian-clipper com template |
Recursos