obsidian-pulse
"Netflix/YouTube pessoal" rodando 100% local. Worker batch pre-computa insights; dashboard serve em <500ms.
Quando usar
- Usuario diz "abre o pulse", "dashboard", "o que ta rolando no vault".
- Usuario invoca
/obsidian-master-kit:pulse. - Apos scan + organizer: pulse consome
suggestions_cache,alerts_cache,clusters,eventspra gerar views.
Quando nao usar
- Vault sem scan inicial (pulse precisa de notes/events).
- Sem deps
pulseinstaladas:pip install 'obsidian-master-kit[pulse]'.
Fluxo canonico
Passo 1: Detecte o vault
Walk ancestrais procurando .obsidian-master/marker.json. Senao,
pede --vault PATH.
Passo 2: Escolha o sub-comando
| Intencao do usuario | Sub-comando |
|---|---|
| "Roda analise e atualiza caches" | refresh |
| "Sobe dashboard localhost" | serve |
| "Tudo junto, em foreground" | daemon |
| "Me da status resumido" | status |
Passo 3: Invoque o script
python3 ${CLAUDE_PLUGIN_ROOT}/skills/obsidian-pulse/scripts/pulse.py \
<sub-comando> [--vault PATH] [--port 4711]
Passo 4: Dashboard
- http://localhost:4711 (porta configuravel)
- Token em
.obsidian-master/pulse-token.txt— headerX-Pulse-Token - 6 tabs: Hoje / Pulso / Grafo / Saude / Descobrir / Insights
- Rejeita requests de IPs != 127.0.0.1
Princípios duros (anti-vigilante)
- Max 5 insights por dia (
LIMIT 5nas queries). - Max 1 alerta WARN por dia (resto vai pra aba passiva).
- Reasoning obrigatorio em cada card — constraint no schema.
- Zero LLM no loop — templates deterministicos em pt-br.
- Privacy first:
sensitive=1redige titulo em[item em area X]. - Pull, nao push: dashboard abre quando Rafael quer; sem notificacao.
CLI: referencia rapida
pulse refresh— roda Stage B (batch analytics: FSRS, anomalies, ranking, cache generation)pulse serve [--port 4711]— sobe FastAPI+HTMX dashboardpulse daemon [--port 4711]— refresh + serve em foregroundpulse status— resumo: ultima refresh, contagens, proxima window