name: sqlite-graphrag description: Esta skill DEVE ativar para operações da CLI sqlite-graphrag incluindo memória persistente, GraphRAG, grafo de entidades, busca híbrida, recall, remember, ingest, enrich, deep-research, embedding LLM, seleção de backend (codex claude opencode), enforcement OAuth-only, validação preflight, FTS5, similaridade cosine BLOB-backed, isolamento de CWD, gestão de namespace, migração, manutenção. Ativa em palavras-chave memória RAG GraphRAG SQLite one-shot OAuth offline persistente grafo entidade embedding codex claude opencode remember recall hybrid-search ingest enrich forget purge link
Quando Esta Skill Ativa
- ATIVE quando o usuário pede para lembrar, salvar, recordar, recuperar, buscar ou persistir algo entre sessões
- ATIVE para contexto de longo prazo, grafo de conhecimento, GraphRAG, RAG, ligação de entidades, gestão de memória
- ATIVE quando sqlite, sqlite-graphrag, embedding, FTS5, hybrid-search ou memória LLM for mencionado
- NUNCA ATIVE para dados efêmeros pontuais, I/O simples de arquivo ou tarefas sem relação a contexto persistente
Regras de Instrução para LLMs (Prompt Rules)
- QUANDO "lembre disso", "salve isso" → EXECUTE
remember --force-mergecom--graph-stdinincluindo entidades curadas e relações canônicas - QUANDO "o que sabe sobre X", "recall X" → EXECUTE
hybrid-search "X" --k 10 --jsonPRIMEIRO, EXPANDA top comread --name <nome> --json - QUANDO "como X se relaciona com Y" → EXECUTE
graph traverse --from X --depth 2 --jsonourelated X --hops 2 --json - QUANDO "pesquise profundamente sobre X" → EXECUTE
deep-research "X" --k 20 --max-hops 3 --json - ANTES de criar memória → EXECUTE
hybrid-search "<nome>" --k 5 --jsonpara VERIFICAR duplicatas; se encontrar, USE--force-merge - APÓS criar/atualizar memória → VERIFIQUE com
read --name <nome> --json | jaq '{name, description, body_length}' - APÓS CADA turno com achados novos → AVALIE persistência via
remember --force-merge; se nada novo, DECLARE "Nenhum achado novo" - QUANDO exit code não-zero → LEIA envelope JSON via
jaq '{code, message, error_class}', REPORTE remediação - QUANDO exit 9 (duplicada) → RETENTE com
--force-merge - QUANDO exit 19 (SHUTDOWN) → RETRY OBRIGATÓRIO; trabalho parcial descartado
- QUANDO exit 75 (singleton) → AGUARDE e retente; NUNCA aumente concorrência
- QUANDO exit 16 (preflight) → CORRIJA config MCP; NUNCA bypass com
SKIP_PREFLIGHT - SEMPRE parseie saída JSON com
jaq(NUNCAjq) - SEMPRE passe flag
--jsonem toda invocação desqlite-graphrag - SEMPRE use
--llm-backend codex --llm-model gpt-5.4-miniOU--llm-backend claude --llm-model claude-sonnet-4-6OU--llm-backend opencode --llm-model opencode/big-picklepara comandos de embedding - SEMPRE use APENAS relações canônicas:
applies-to,uses,depends-on,causes,fixes,contradicts,supports,follows,related,mentions,replaces,tracked-in - SEMPRE mapeie não-canônicas:
adds|creates → causes,implements → supports,blocks → contradicts,tested-by → related,part-of → applies-to - SEMPRE normalize nomes de entidade para kebab-case ASCII lowercase ANTES de passar à CLI
- NUNCA use MCP Serena ou
.mdpara persistência; NUNCA escreva MEMORY.md - NUNCA inicie daemon (REMOVIDO); NUNCA passe
ANTHROPIC_API_KEYouOPENAI_API_KEY - PREFIRA
remember --force-mergesobreedit; PREFIRA--graph-stdinsobre--enable-ner - LIMITE entidades a conceitos de domínio; REJEITE palavras genéricas, pronomes, UUIDs, timestamps
Arquitetura e Princípios
- INVOKE sempre como subprocesso; READ stdout para JSON/NDJSON; READ stderr para logs; CHECK exit code ANTES de parsear
- SAIBA que BUILD é LLM-only one-shot; binário NÃO tem daemon, NÃO tem ONNX runtime, NÃO tem cache de modelo
- SAIBA que similaridade COSINE é pure Rust sobre BLOB-backed
memory_embeddings,entity_embeddings,chunk_embeddings - SAIBA que SCHEMA é v15 após
initoumigrateem banco fresco - ENFORCE OAUTH-ONLY: spawn ABORTA exit 1 se
ANTHROPIC_API_KEYouOPENAI_API_KEYestiver definida - SAIBA que
ANTHROPIC_AUTH_TOKEN,ANTHROPIC_BASE_URL,OPENAI_BASE_URLsão PRESERVADAS para providers customizados (OpenRouter, Bedrock) - SAIBA que flags de endurecimento são SEMPRE passadas para subprocessos
claude -pecodex exec - SAIBA que CWD do subprocesso é ISOLADO via
apply_cwd_isolation;CLAUDE_CONFIG_DIRdefinido para dir de isolamento; órfãos limpos viacleanup_isolation_dirs - SAIBA que 7 guards preflight rodam ANTES de cada fork LLM:
check_argv_size,check_binary_exists,check_mcp_config_inline,check_mcp_config_path,check_walkup_mcp_json,check_output_buffer,check_claude_config_dir - SAIBA que exit 16 (
EX_CONFIG) é falha preflight universal; LEIA envelope para remediação por variante - DEFINA
SQLITE_GRAPHRAG_SKIP_PREFLIGHT=1APENAS em emergências - ISOLE NAMESPACE por projeto via
--namespace <ns>ou env; default églobal - NUNCA exponha o binário como servidor MCP ou serviço HTTP
- NUNCA escreva arquivo
.sqliteem paralelo ao binário ou de outra ferramenta - USE MOCK LLM CLI para CI: prefixe
tests/mock-llmao PATH
Seleção de Backend LLM
- PASSE
--llm-backend codexpara spawnar Codex CLI headless (backend DEFAULT) - PASSE
--llm-backend claudepara spawnar Claude Code headless viaembed_via_claude_local(zero-token, compatível com OAuth) - PASSE
--llm-backend opencodepara spawnar OpenCode CLI headless (sistema de auth próprio, NÃO OAuth) - PASSE
--llm-backend codex,claudepara codex-primeiro com fallback claude - PASSE
--llm-backend codex,claude,opencode,nonepara cadeia completa de fallback com embedding null como último recurso - PASSE
--llm-model <MODEL>para selecionar modelo de embedding para o backend ativo - SAIBA modelos DEFAULT: codex=
gpt-5.5, claude=claude-sonnet-4-6, opencode=opencode/big-pickle - PASSE
--llm-fallback-mode <claude|codex|opencode>para trocar backend mid-job em rate-limit - PASSE
--skip-embedding-on-failureAPENAS quando--llm-backend …,noneestá ativo - PASSE
--dry-run-backendpara planejar operação de backend sem executar (preview idempotente) - PARSEE campo
backend_invokedem todo envelope de embedding para CONFIRMAR qual backend rodou - PASSE
--codex-binary <PATH>,--claude-binary <PATH>,--opencode-binary <PATH>para sobrescrever localização dos binários - PASSE
--opencode-model <MODEL>e--opencode-timeout <SECONDS>para ajustes específicos do opencode - PASSE
--mode codex|claude-code|opencodepara pipelines de extração em ingest e enrich - SAIBA que output NDJSON do opencode tem 3 tipos de evento:
step_start,text,step_finish - SAIBA modelos gratuitos opencode:
opencode/big-pickle,opencode/deepseek-v4-flash-free,opencode/mimo-v2.5-free,opencode/nemotron-3-ultra-free,opencode/north-mini-code-free - EXECUTE
codex loginpara refrescar OAuth do codex; refresque OAuth do claude quando stale - NUNCA passe API keys com qualquer backend; spawn ABORTA exit 1
Referência de Flags Globais
--db <PATH>— sobrescrever localização do banco (NÃO é global; cada subcomando aceita independentemente)--namespace <ns>— escopar operações para um namespace--lang en|pt— forçar idioma do stderr--tz <TIMEZONE>— localizar timestamps--json— saída JSON estruturada (SEMPRE passe)--low-memory— paralelismo unitário para containers restritos--max-concurrency N— cap de invocações CLI pesadas concorrentes--wait-lock SECS— ampliar janela de aquisição de lock--llm-parallelism N— cap de fan-out de subprocessos de embedding (default 4, clamp [1, 32])--llm-backend <chain>— seleção de backend com fallback separado por vírgula--llm-model <MODEL>— modelo de embedding para backend ativo--dry-run-backend— planejar operação de backend sem executar--llm-fallback-mode <backend>— trocar backend mid-job em rate-limit--llm-fallback <chain>— cadeia de fallback comma-separated tentada quando primário falha (defaultcodex,claude,none)--llm-slot-no-wait— falhar imediatamente exit 75 quando nenhum slot LLM livre (em vez de esperar)--embedding-dim N— override de dimensionalidade de embedding [8, 4096] (default 64 MRL)--graceful-shutdown-secs N— orçamento de cleanup antes de SIGKILL--skip-embedding-on-failure— exit 0 em falha de embedding (APENAS com fallback terminando emnone)--strict-env-clear— preservar apenasPATHem subprocesso para compliance--codex-binary,--claude-binary,--opencode-binary— sobrescrever paths dos binários--opencode-model,--opencode-timeout— overrides específicos do opencode-v/-vv/-vvv— logging info/debug/trace no stderr
CRUD Escrita (remember, remember-batch, ingest)
- INVOKE
remember --name <kebab> --type <kind> --description <text>com--body <text>ou--body-file <path>ou--body-stdin - INVOKE
remember --graph-stdinpara anexar{body, entities, relationships}em único JSON - PASSE entities como
[{name, entity_type}]em kebab-case ASCII - PASSE relationships como
[{source, target, relation, strength}]ondestrength em [0.0, 1.0] - PASSE
--force-mergepara updates idempotentes e restauração de soft-deleted - PASSE
--clear-bodypara limpar corpo durante update com--force-merge - PASSE
--dry-runpara validar inputs sem persistir - PASSE
--max-rss-mb <MiB>para abortar quando RSS exceder threshold (default 8192) - RESPEITE limite de 512000 bytes e 512 chunks por corpo
- VALORES válidos de
--type:user,feedback,project,reference,decision,incident,skill,document,note - USE
--enable-nerpara extração de entidades URL-regex (APENAS URL-regex desde remoção do NER) - INVOKE
remember-batchpara 10+ memórias via NDJSON stdin; ESPERE status por item e linha de sumário - INVOKE
ingest <DIR> --recursive --pattern "*.md"para importar diretório - PASSE
--type <kind>para aplicar mesmo tipo a todos arquivos ingeridos - PASSE
--mode codex|claude-code|opencodepara extração de entidades curada por LLM - USE
--auto-describe(default true) para extrair descrição da primeira linha do corpo; opt out via--no-auto-describe - USE
--resumepara continuar da fila após interrupção;--retry-failedpara apenas falhados - USE
--fail-fastpara parar na primeira falha por arquivo - USE
--max-name-length Npara sobrescrever truncamento padrão de nomes em 60 chars - USE
--llm-parallelism Nemingest(default 2);--ingest-parallelism Npara paralelismo per-file - PASSE
--claude-model <MODEL>e--claude-timeout <secs>(default 300) para--mode claude-code - PASSE
--codex-model <MODEL>e--codex-timeout <secs>(default 300) para--mode codex - PASSE
--rate-limit-wait <secs>(default 60) para espera inicial em rate-limit com--mode claude-code - PASSE
--queue-db <path>para BD de fila customizado;--keep-queuepara preservar após conclusão - PASSE
--low-memoryemingestpara modo single-threaded (3-4x mais lento, <4 GB RAM) - PASSE
--dry-runemingestpara preview de mapeamento arquivo-para-nome sem persistir - RESPEITE cap
--max-files 10000como validação all-or-nothing - NUNCA misture
--body,--body-file,--body-stdin,--graph-stdinem única invocação - NUNCA passe corpo vazio sem entities via
--graph-stdin - NUNCA use
fd | xargs remember; INVOKEingestem vez disso - NUNCA use
--force-mergeemingest(exclusivo deremember)
CRUD Leitura, Atualização, Deleção
- INVOKE
read --name <kebab> --jsonpara fetch O(1);read --id <N>por memory_id;--with-graphpara entidades vinculadas - INVOKE
list --type <kind> --limit N --offset N --json;--include-deletedpara soft-deleted - INVOKE
history --name <n> --diff --jsonpara versões com diff de caracteres - INVOKE
edit --name <n> --body-file <path>para atualizar corpo (re-embeda automaticamente) - USE
--description <text>para atualizar apenas descrição (sem re-embed) - USE
--type <kind>para mudar tipo de memória sem recriar - USE
--force-reembedpara regenerar embedding sem mudar corpo - USE
--expected-updated-at <ts>para optimistic locking; TRATE exit 3 como conflito - INVOKE
rename --from <old> --to <new>para renomear preservando histórico - INVOKE
restore --name <n> --version <N>para restaurar versão anterior - INVOKE
forget --name <n>para soft-delete reversível; TRATE exit 4 como ausente - INVOKE
purge --retention-days <N> --yespara hard delete; USE--dry-runprimeiro - INVOKE
unlink --from <a> --to <b> --relation <type>para remover aresta;--entity <name> --allpara massa - INVOKE
prune-relations --relation <type> --yespara deleção em massa;--show-entities --dry-runpara preview - INVOKE
cleanup-orphans --yesapós bulk forget; depoisvacuum --json - NUNCA pule optimistic locking em pipelines concorrentes
- NUNCA delete manualmente via shell
sqlite3
Operações de Grafo de Entidades
- INVOKE
link --from <a> --to <b> --relation <type> --create-missing --weight <float>para criar aresta - PASSE
--entity-type <kind>para entidades auto-criadas (defaultconcept) - PASSE
--max-entity-degree Npara avisar quando entidade exceder N conexões - USE
--strict-relationspara falhar em tipos de relação não-canônicos - INVOKE
graph entities --jsonpara listar entidades; ACESSE via.entities[](NÃO.items[]) - ORDENE via
--sort-by degree|name|created_at; PAGINE via--limit N --offset N - INVOKE
graph stats --jsonpara inspecionarnode_count,edge_count,avg_degree,max_degree - SAIBA que grau de entidade é calculado via query COUNT precisa (
recalculate_degree) - INVOKE
graph traverse --from <root> --depth <N> --jsonpara travessia de subgrafo - USE
--format json|dot|mermaidcom--output <path>para exportar grafo - INVOKE
memory-entities --name <memory>para lookup forward;--entity <name>para reverso - INVOKE
rename-entity,delete-entity --cascade,merge-entities --names "a,b,c" --into <target> - INVOKE
reclassify --name <n> --new-type <kind>ou--from-type <old> --to-type <new> --batch - INVOKE
reclassify-relation --from-relation <old> --to-relation <new> --batchpara migração em massa de tipos de relação - INVOKE
normalize-entities --yespara normalizar todos nomes para kebab-case ASCII - INVOKE
prune-ner --entity <n>para remover bindings NER;prune-ner --all --yespara todos no namespace - VALIDE nomes de entidade: mínimo 2 chars, sem newlines, sem ALL_CAPS curtos (4 chars ou menos REJEITADOS)
- RELAÇÕES canônicas:
applies-to,uses,depends-on,causes,fixes,contradicts,supports,follows,related,mentions,replaces,tracked-in - TIPOS canônicos de entidade:
project,tool,person,file,concept,incident,decision,memory,dashboard,issue_tracker,organization,location,date - NUNCA use
mentionscomo relação padrão
Busca GraphRAG (recall, hybrid-search, related, deep-research, enrich)
- USE padrão canônico de três camadas:
hybrid-searchdepoisread --namedepoisrelated|graph traverse - INVOKE
recall <query> --k Npara busca semântica pura KNN; PASSE--no-graphpara desabilitar expansão de grafo - INTERPRETE
distancecrescente como similaridade decrescente;score=1.0 - distanceclamped [0.0, 1.0] - INVOKE
hybrid-search <query> --k Npara fusão FTS5+KNN via RRF - PASSE
--rrf-k 60para fusão padrão;--weight-vec 1.0 --weight-fts 1.0para balanceada - PASSE
--type <kind>para filtrar resultados por tipo de memória - PASSE
--fallback-fts-onlypara pular embedding ao vivo e servir apenas FTS5 BM25 (modo offline) - USE
--with-graph --max-hops 2 --min-weight 0.3para expansão de grafo; LEIA TANTOresults[]QUANTOgraph_matches[] - INVOKE
related <name> --hops Npara travessia multi-hop a partir de memória - INVOKE
deep-research "<query>" --k 20 --max-hops 3 --max-sub-queries 7 --max-results 50para pesquisa paralela multi-hop - PASSE
--graph-decay <float>(default 0.7) para decaimento de score por hop;--graph-min-score <float>(default 0.05) para threshold mínimo - PASSE
--max-neighbors-per-hop Npara limitar vizinhos por entidade por hop - PASSE
--timeout <secs>(default 30) para timeout por sub-query - PASSE
--with-bodiespara incluir corpos completos de memórias nos resultados - INVOKE
enrich --operation <op>para qualidade de grafo via LLM:memory-bindings,entity-descriptions,body-enrich,re-embed --limit N --resume - PASSE
--llm-parallelism Npara controlar subprocessos LLM concorrentes - PASSE
--max-cost-usd Npara limitar custo acumulado de LLM (ignorado para usuários OAuth) - USE
--dry-runpara preview sem spawnar LLM - PARSEE top campos:
recallretornaresults[].{name, snippet, distance, score, source};hybrid-searchretornaresults[].{name, combined_score, vec_rank, fts_rank} - PARSEE
deep-researchretornasub_queries[],results[],evidence_chains[],graph_context,stats - NUNCA confunda
distancecomcombined_scoreem ranking - NUNCA aumente
--hopssem inspecionargraph statsantes
Códigos de Saída e Estratégia de Retry
- EXIT 0: sucesso; EXIT 1: erro de validação; EXIT 2: parsing de argumento; EXIT 3: conflito de lock otimista (recarregue e retente)
- EXIT 4: não encontrado; EXIT 5: erro de namespace; EXIT 6: payload grande demais; EXIT 9: duplicada (use
--force-merge) - EXIT 10: erro de banco (execute
vacuum+health); EXIT 11: falha de embedding (verifique backend + OAuth) - EXIT 13: falha parcial de batch (reprocesse apenas falhados); EXIT 14: erro de I/O; EXIT 15: banco ocupado (amplie
--wait-lock) - EXIT 16: falha preflight (corrija config MCP, NUNCA trate como transitório)
- EXIT 19: SHUTDOWN (RETRY OBRIGATÓRIO, trabalho parcial descartado); PARSEE envelope
{error, code, signal, graceful, message} - EXIT 20: erro interno; EXIT 75: slots esgotados ou job singleton locked (respeite cooldown, NUNCA retente imediatamente)
- EXIT 77: pressão de RAM (aguarde memória livre)
- NUNCA ignore exit não-zero; NUNCA reprocesse batch inteiro após exit 13; NUNCA confunda exit 1 com exit 9
Concorrência e Paralelismo
- RESPEITE teto rígido
2 x nCPUspara comandos pesados:init,remember,ingest,recall,hybrid-search - DEFINA
--llm-parallelism Ndefault 4 emremember/edit, default 2 emingest(clamp [1, 32]) - USE
--llm-max-host-concurrency Npara cap de subprocessos LLM cross-process - USE
--llm-slot-wait-secs Npara esperar slot ou--llm-slot-no-waitpara abortar - SAIBA que JOB SINGLETON:
enrich,ingest --mode claude-code|codex|opencodeadquirem singleton por namespace - USE
--wait-job-singleton SECSou--force-job-singletonpara quebrar lock stale - ATIVE
SQLITE_GRAPHRAG_LOW_MEMORY=1para paralelismo unitário (3-4x mais lento) - NUNCA rode
enrichem paralelo contra mesmo banco
Pipeline de Manutenção e Subcomandos de Diagnóstico
- EXECUTE
sqlite-graphrag init --namespace <ns>no primeiro uso - EXECUTE
health --jsonpara verificarintegrity_ok,schema_ok,schema_version >= 15 - EXECUTE
migrate --dry-run --jsonpara preview; depoismigrate --jsonapós upgrade do binário - EXECUTE
optimize --jsonpara refrescar estatísticas do planner; incluifts_rebuilt - EXECUTE
fts rebuild --jsonquandohealth.fts_degradedfor true;fts check --jsonpara integridade;fts stats --jsonpara contagens - INVOKE
backup --output <path> --jsonpara backup online;sync-safe-copy --dest <path>para snapshot atômico - INVOKE
export --namespace <ns> --type <kind> --jsonpara exportar como NDJSON - INVOKE
vacuum --jsonapós purge grande; INSPECIONEwal_size_mbem health para fragmentação - INVOKE
vec orphan-list --jsondepoisvec purge-orphan --yespara limpar vetores órfãos;vec stats --jsonpara saúde - INVOKE
debug-schema --jsonpara troubleshooting de drift de schema - INVOKE
completions <bash|zsh|fish|elvish|powershell>para completions de shell - INVOKE
codex-models --jsonpara inspecionar whitelist de modelos codex - INVOKE
stats --jsonpara estatísticas do banco (contagens, tamanhos, breakdown por namespace) - INVOKE
namespace-detect --jsonpara resolver precedência de namespace da invocação atual - INVOKE
cache list --jsonpara listar arquivos de modelo em cache;cache clear-models --yespara forçar re-download - INVOKE
pending list --filter-status queued --jsonpara fila de checkpoint;pending show <id>;pending cleanup --yes - INVOKE
pending-embeddings list --jsonpara fila de retry;pending-embeddings process --jsonpara reprocessar - INVOKE
slots status --jsonpara semáforo host-wide;slots release --slot-id <N> --yespara órfãos - INVOKE
embedding status --jsonpara contagens;embedding list --jsonpara inspeção por entrada - AGENDE semanal:
purgedepoiscleanup-orphansdepoisprune-relations --relation mentionsdepoisvacuumdepoisoptimizedepoissync-safe-copy - SAIBA que toda escrita executa
PRAGMA wal_checkpoint(TRUNCATE)após commit - SE corrupção:
sqlite3 broken.sqlite ".recover" | sqlite3 repaired.sqlite
Referência de Variáveis de Ambiente
SQLITE_GRAPHRAG_DB_PATH— path persistente do bancoSQLITE_GRAPHRAG_NAMESPACE— namespace persistenteSQLITE_GRAPHRAG_LLM_BACKEND— backend persistente (codex|claude|opencode|none|auto)SQLITE_GRAPHRAG_LLM_MODEL— override persistente de modeloSQLITE_GRAPHRAG_CODEX_BINARY/SQLITE_GRAPHRAG_CODEX_EMBED_MODEL— binário e modelo de embed codexSQLITE_GRAPHRAG_CLAUDE_BINARY— override de path do binário claudeSQLITE_GRAPHRAG_OPENCODE_BINARY/SQLITE_GRAPHRAG_OPENCODE_MODEL/SQLITE_GRAPHRAG_OPENCODE_EMBED_MODEL/SQLITE_GRAPHRAG_OPENCODE_TIMEOUT— overrides opencodeSQLITE_GRAPHRAG_EMBEDDING_DIM— dimensão de embedding [8, 4096] (default 64 MRL)SQLITE_GRAPHRAG_LOW_MEMORY— habilitar paralelismo unitárioSQLITE_GRAPHRAG_STRICT_ENV_CLEAR— modo complianceSQLITE_GRAPHRAG_DISPLAY_TZ— timezone persistenteSQLITE_GRAPHRAG_LOG_FORMAT—jsonpara agregadores de logSQLITE_GRAPHRAG_SKIP_PREFLIGHT— bypass preflight (APENAS EMERGÊNCIAS)SQLITE_GRAPHRAG_IGNORE_SHUTDOWN— APENAS para harnesses de teste CI
Fórmulas CLI Prontas para Uso
- INIT namespace:
sqlite-graphrag init --namespace <ns> - VERIFICAR saúde:
sqlite-graphrag health --namespace <ns> --json | jaq '{integrity_ok, schema_version}' - MIGRATE preview:
sqlite-graphrag migrate --dry-run --json - MIGRATE aplicar:
sqlite-graphrag migrate --json - REMEMBER codex todas flags:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini --codex-binary <path> --llm-parallelism 4 remember --name <n> --type decision --description "desc" --body-file doc.md --force-merge --max-rss-mb 4096 --json - REMEMBER claude todas flags:
sqlite-graphrag --llm-backend claude --llm-model claude-sonnet-4-6 --claude-binary <path> --llm-parallelism 4 remember --name <n> --type decision --description "desc" --body "conteudo" --force-merge --json - REMEMBER opencode todas flags:
sqlite-graphrag --llm-backend opencode --llm-model opencode/big-pickle --opencode-binary <path> --opencode-timeout 300 --llm-parallelism 4 remember --name <n> --type note --description "desc" --body-stdin --json - REMEMBER graph-stdin: pipe JSON
{body, entities, relationships}parasqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini remember --name <n> --type decision --description "desc" --graph-stdin --force-merge --json - REMEMBER-BATCH: pipe NDJSON para
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini remember-batch --json - DRY-RUN backend:
sqlite-graphrag --llm-backend codex --dry-run-backend recall "query" --k 5 --json - RECALL codex:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini recall "query" --k 5 --no-graph --json - RECALL claude:
sqlite-graphrag --llm-backend claude --llm-model claude-sonnet-4-6 recall "query" --k 5 --json - RECALL opencode:
sqlite-graphrag --llm-backend opencode --llm-model opencode/big-pickle recall "query" --k 5 --json - HYBRID-SEARCH codex todas flags:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini hybrid-search "query" --k 10 --with-graph --max-hops 2 --min-weight 0.3 --rrf-k 60 --weight-vec 1.0 --weight-fts 1.0 --type decision --json - HYBRID-SEARCH claude:
sqlite-graphrag --llm-backend claude --llm-model claude-sonnet-4-6 hybrid-search "query" --k 10 --json - HYBRID-SEARCH opencode:
sqlite-graphrag --llm-backend opencode --llm-model opencode/big-pickle hybrid-search "query" --k 10 --with-graph --json - HYBRID-SEARCH fts-only:
sqlite-graphrag hybrid-search "query" --k 10 --fallback-fts-only --json - DEEP-RESEARCH todas flags:
sqlite-graphrag --llm-backend claude --llm-model claude-sonnet-4-6 deep-research "pergunta" --k 20 --max-hops 3 --max-sub-queries 7 --max-results 50 --with-bodies --graph-decay 0.7 --graph-min-score 0.05 --timeout 30 --max-neighbors-per-hop 10 --json - RELATED:
sqlite-graphrag related <nome> --hops 2 --relation uses --json - INGEST codex todas flags:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini ingest ./docs --mode codex --recursive --pattern "*.md" --type document --auto-describe --resume --max-files 1000 --max-name-length 80 --llm-parallelism 2 --codex-model gpt-5.4-mini --codex-timeout 300 --fail-fast --low-memory --json - INGEST claude todas flags:
sqlite-graphrag --llm-backend claude --llm-model claude-sonnet-4-6 ingest ./docs --mode claude-code --recursive --pattern "*.md" --type document --auto-describe --resume --claude-model claude-sonnet-4-6 --claude-timeout 600 --rate-limit-wait 60 --max-cost-usd 5 --queue-db .ingest-queue.sqlite --keep-queue --json - INGEST opencode todas flags:
sqlite-graphrag --llm-backend opencode --llm-model opencode/big-pickle ingest ./docs --mode opencode --recursive --pattern "*.md" --type document --auto-describe --opencode-model opencode/big-pickle --opencode-timeout 600 --json - INGEST dry-run:
sqlite-graphrag ingest ./docs --dry-run --pattern "*.md" --recursive --json - ENRICH re-embed codex:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini enrich --operation re-embed --limit 100 --resume --llm-parallelism 4 --json - ENRICH memory-bindings claude:
sqlite-graphrag --llm-backend claude --llm-model claude-sonnet-4-6 enrich --operation memory-bindings --mode claude-code --max-cost-usd 5 --json - ENRICH opencode:
sqlite-graphrag --llm-backend opencode --llm-model opencode/big-pickle enrich --operation entity-descriptions --mode opencode --dry-run --json - READ com grafo:
sqlite-graphrag read --name <n> --with-graph --json - READ por id:
sqlite-graphrag read --id 42 --json - LIST:
sqlite-graphrag list --type decision --limit 50 --offset 0 --include-deleted --json - HISTORY:
sqlite-graphrag history --name <n> --diff --json - EDIT corpo codex:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini edit --name <n> --body-file novo.md --expected-updated-at "2026-01-01T00:00:00Z" --json - EDIT descrição:
sqlite-graphrag edit --name <n> --description "nova desc" --json - EDIT force-reembed:
sqlite-graphrag --llm-backend codex --llm-model gpt-5.4-mini edit --name <n> --force-reembed --json - RENAME:
sqlite-graphrag rename --from <antigo> --to <novo> --json - RESTORE:
sqlite-graphrag restore --name <n> --version 2 --json - FORGET:
sqlite-graphrag forget --name <n> --json - PURGE preview:
sqlite-graphrag purge --retention-days 30 --yes --dry-run --json - LINK todas flags:
sqlite-graphrag link --from <a> --to <b> --relation uses --weight 0.8 --create-missing --entity-type tool --strict-relations --max-entity-degree 50 --json - UNLINK:
sqlite-graphrag unlink --from <a> --to <b> --relation uses --json - UNLINK massa:
sqlite-graphrag unlink --entity <nome> --all --json - GRAPH stats:
sqlite-graphrag graph stats --json | jaq '{node_count, edge_count, avg_degree}' - GRAPH entities:
sqlite-graphrag graph entities --sort-by degree --order desc --limit 20 --json - GRAPH traverse:
sqlite-graphrag graph traverse --from <entidade> --depth 2 --json - GRAPH exportar:
sqlite-graphrag graph --format <json|dot|mermaid> --output <path> - MERGE entidades:
sqlite-graphrag merge-entities --names "a,b,c" --into alvo --json - NORMALIZE entidades:
sqlite-graphrag normalize-entities --yes --json - RECLASSIFY entidade:
sqlite-graphrag reclassify --name <n> --new-type concept --json - RECLASSIFY massa:
sqlite-graphrag reclassify --from-type tool --to-type concept --batch --json - RECLASSIFY-RELATION:
sqlite-graphrag reclassify-relation --from-relation <antiga> --to-relation <nova> --batch --json - PRUNE-NER:
sqlite-graphrag prune-ner --entity <n>ouprune-ner --all --yes - PRUNE-RELATIONS preview:
sqlite-graphrag prune-relations --relation mentions --yes --show-entities --dry-run - CLEANUP pipeline: INVOKE
forget --name <n>depoiscleanup-orphans --yes --jsondepoisvacuum --json - PENDING lista:
sqlite-graphrag pending list --filter-status queued --json - PENDING-EMBEDDINGS:
sqlite-graphrag pending-embeddings list --jsondepoispending-embeddings process --json - SLOTS:
sqlite-graphrag slots status --jsoneslots release --slot-id <N> --yes --json - EMBEDDING status:
sqlite-graphrag embedding status --jsoneembedding list --json - FTS:
sqlite-graphrag fts rebuild --jsonefts check --jsonefts stats --json - VEC:
sqlite-graphrag vec stats --jsonevec orphan-list --jsondepoisvec purge-orphan --yes --json - BACKUP:
sqlite-graphrag backup --output backup.sqlite --json - SYNC-SAFE-COPY:
sqlite-graphrag sync-safe-copy --dest snapshot.sqlite - EXPORT:
sqlite-graphrag export --namespace <ns> --type decision --json - OPTIMIZE:
sqlite-graphrag optimize --json - VACUUM:
sqlite-graphrag vacuum --json - DEBUG-SCHEMA:
sqlite-graphrag debug-schema --json - CODEX-MODELS:
sqlite-graphrag codex-models --json - COMPLETIONS:
sqlite-graphrag completions <bash|zsh|fish|elvish|powershell> - STATS:
sqlite-graphrag stats --json - NAMESPACE-DETECT:
sqlite-graphrag namespace-detect --json - CACHE listar:
sqlite-graphrag cache list --json - CACHE limpar:
sqlite-graphrag cache clear-models --yes - FALLBACK CHAIN:
sqlite-graphrag --llm-backend codex --llm-fallback codex,claude,opencode,none --skip-embedding-on-failure remember --name <n> --type note --description "desc" --body-file nota.md --json
Regras Ativas
- SEMPRE passe
--llm-backende--llm-modelem comandos de embedding - SEMPRE parsee
backend_invokedpara confirmar qual backend rodou - SEMPRE execute
codex loginou refresque OAuth do claude quando stale - NUNCA passe API keys (OAuth-only, exit 1); NUNCA use daemon,
--bare,--gliner-variant(REMOVIDOS) - NUNCA instale com
--features embedding-legacyou--features ner-legacy - NUNCA rode
enrichem paralelo contra mesmo banco; NUNCA escreva.sqlitefora do binário - NUNCA ignore exit 19 (RETRY OBRIGATÓRIO) ou exit 16 (corrija config MCP)
- NUNCA chame
migrate --to-llm-onlysem guarda--drop-vec-tables