Referencia del CLI pinky

Todos los subcomandos de pinky, qué hacen y sus flags. Generado del --help del binario (pinky <comando> --help da siempre la versión canónica).

Usage: pinky [OPTIONS] <COMMAND>

Flags globales (valen para todos los comandos)

FlagQué hace
--db <ruta>Índice SQLite a usar. Toma PINKY_DB si está seteada (mismo default que el MCP y pinky init), así el CLI y el agente ven la misma base. Default brain.db.
--hash-embedUsa el embedder determinista (sin bajar el modelo ONNX). También se activa con la env var PINKY_HASH_EMBED. Ideal offline/CI.
--jsonSalida en JSON, para scripts. En search además desactiva el registro de telemetría (uso programático).
--version / -VVersión del binario.
--help / -hAyuda (de pinky o de un subcomando).

Indexar

pinky reindex <ruta> [--project <nombre>]

Reindexa todos los .md bajo <ruta>. Incremental: salta los que no cambiaron (por content_hash) y borra del índice los que ya no existen. Con --project las entradas quedan en el scope project:<nombre>; sin él, en global.

pinky reindex documentation --project sgsvp

pinky watch <ruta> [--project <nombre>]

Observa la carpeta y reindexa incrementalmente al detectar cambios en .md. Bloquea hasta Ctrl-C.

pinky watch documentation

pinky sync [--dir <carpeta>] [--push]

Sincroniza el brain global por git: git pullreindex → (con --push) git push. La carpeta default es ~/.pinky/brain; el índice vive junto al brain (<brain>/brain.db), no el --db del CWD (para no mezclar con un proyecto).

pinky sync --push

Buscar

pinky search <query...> [opciones]

Búsqueda híbrida (BM25 + vector, fusión RRF). Filtros de metadata y rerank opt-in.

FlagQué hace
--limit <n>Cantidad de resultados (default 10).
--rerankRerank léxico liviano (privilegia frase exacta en título/snippet).
--project <nombre>Filtra por proyecto.
--type <tipo>Filtra por tipo: gotcha | pattern | decision | diary | guide | note.
--tag <t>Filtra por tag (repetible; la entrada debe tenerlos todos).
pinky search "timeout al cerrar el pool de postgres"
pinky search "deadlock" --project sgsvp --type gotcha --json

Guardar / preparar

pinky save --title <t> [opciones]

Guarda conocimiento nuevo: escribe un .md con frontmatter y lo indexa al vuelo.

FlagQué hace
--title <t>Título (obligatorio).
--body <md>Cuerpo markdown. Si se omite, se lee de stdin (para pipes).
--type <tipo>gotcha | pattern | decision | diary | guide | note (default note). Se normaliza y valida.
--tag <t>Etiquetas (repetible).
--project <nombre>Proyecto (scope).
--dir <carpeta>Dónde escribir el .md (default documentation).
--no-fileGuarda solo en la DB, sin .md (ojo: un reindex la borraría).
pinky save --title "Reintento de templates" --type pattern --tag whatsapp --body "Backoff exponencial…"
echo "cuerpo largo…" | pinky save --title "Nota" --type note

pinky init [ruta]

Prepara un proyecto: crea documentation/ (+ diary/), registra el MCP en .mcp.json con rutas relativas (relocatable) y deja una guía. No usa embeddings.

pinky init

Mantener (salud del conocimiento)

pinky dedup [--threshold <0..1>]

Lista pares de entradas casi-duplicadas (similitud coseno > umbral, default 0.9). No borra nada — la decisión de mergear es manual.

pinky stale [--days <n>]

Lista entradas con last_verified más viejo que <n> días (default 180), o sin fecha, de más vieja a más nueva. No usa embeddings.

pinky telemetry

Muestra las entradas más recuperadas (título + veces + última vez) y las que nunca se usaron (candidatas a poda). No usa embeddings.

pinky lint [carpeta]

Valida los .md: reporta frontmatter que se degradaría en silencio (YAML inválido, type/fechas mal formadas). Sale ≠0 si hay errores → apto para CI.

pinky evergreen <archivo>

Valida que un doc (p. ej. CLAUDE.md) sea evergreen: marca datos volátiles (nº de línea, LOC, archivo:línea). Sale ≠0 si encuentra alguno.


Escanea un árbol de código buscando marcadores // Brain: <slug> y puebla los backlinks del repo (default default).

Lista el código (archivo:línea) que referencia un <slug>.

pinky backlinks scan ./src --repo miapp
pinky backlinks of pool-postgres

Rollups de diary

pinky rollup <dir> [--period week|month] [--out <archivo>]

Agrega los diaries (YYYY-MM-DD.md) de una carpeta en un resumen markdown determinista (sin LLM). --period default week; --out escribe a archivo en vez de stdout.

pinky rollup documentation/diary --period month --out RESUMEN.md

Diagnóstico

pinky stats

Cantidad de entradas y chunks indexados.

pinky doctor

Chequeo del entorno: versión del binario, sqlite-vec, versión de schema, entradas/chunks, y modelo del índice vs. embedder activo (avisa si no coinciden). Tolera que el índice no exista (te dice qué correr). Con --json, apto para monitoreo.


Calidad del retrieval

pinky eval <golden.json> [--k <n>] [--min-hit-rate <x>] [--min-mrr <x>]

Mide la calidad del retrieval contra un golden set de queries doradas: reporta hit@k y MRR. Con --min-hit-rate/--min-mrr, sale con código 1 si cae por debajo del umbral → gatea el build en CI ante una regresión.

pinky eval testdata/golden.json --min-hit-rate 0.95 --min-mrr 0.9

Utilidades

pinky completions <bash|zsh|fish>

Imprime el script de autocompletado para tu shell.

pinky completions zsh > ~/.zfunc/_pinky

Las tres piezas comparten el mismo índice: CLI pinky (esto), MCP pinky-mcp (para el agente: brain_search/brain_save/brain_stats) y hooks pinky-hooks (Claude Code). Ver HOW-IT-WORKS.md y CONFIGURATION.md.