Dirigido por agentes · Persistente · Basado en fuentes
English · 简体中文 · 日本語 · Español · Português (Brasil) · Français · Русский
lwc es una CLI de memoria proactiva, dirigida por agentes y pensada para agentes de IA. Permite que recuperen, mantengan y hagan evolucionar por sí mismos conocimiento persistente y trazable hasta sus fuentes entre una sesión y la siguiente.
Funciona con Claude Code, Codex, Cursor, OpenCode, Gemini CLI, Kiro, Hermes, Antigravity, GitHub Copilot in VS Code, Copilot CLI, Copilot for JetBrains y pi.
LWC convierte documentos seleccionados en una Wiki duradera. El agente razona y sintetiza; lwc conserva fuentes, páginas, citas, enlaces, índices e historial para que el conocimiento se acumule, en vez de reconstruirse desde fragmentos sin procesar en cada consulta.
RAG y LWC pueden ayudar a un LLM a trabajar con documentos externos, pero conservan el estado en lugares distintos. Una petición RAG típica recupera fragmentos sin procesar y genera una respuesta puntual:
query -> retrieve chunks -> generate answer
LWC conserva el trabajo útil entre peticiones:
task -> recall maintained Wiki -> reason from sources and prior synthesis
-> write durable improvements back
La recuperación es una operación de LWC, no su principio organizador. El artefacto duradero es una Wiki basada en fuentes cuyas páginas, citas, enlaces, contradicciones e historial se revisan a medida que cambia el conocimiento. Por eso LWC no necesita embeddings ni una base de datos vectorial, y tampoco desecha cada síntesis al terminar una respuesta. Puede complementar a RAG, pero no es RAG ejecutado en cada consulta.
lwc es una interfaz de máquina para agentes, no una aplicación de notas orientada a personas. En el uso normal, una persona selecciona fuentes, fija objetivos, plantea preguntas y revisa las respuestas o el Markdown proyectado. El agente ejecuta la CLI, gestiona los ámbitos, integra fuentes, mantiene citas y enlaces y decide qué merece recuperarse o escribirse de vuelta.
No dirijas manualmente el flujo habitual de lwc salvo que estés desarrollando o depurando la herramienta. Pide a tu agente que active el Skill canónico using-lwc, normalmente mediante $using-lwc.
Pega este prompt en el agente que utilizas. Instala la CLI global, delega toda configuración de hosts compatibles al instalador idempotente AgentTarget de LWC y solo recurre a la configuración nativa cuando el agente aún no está registrado.
Copiar el prompt de configuración completo
Configura LWC por completo para este usuario. Ejecuta y verifica el trabajo; no te
limites a describir los comandos que debo ejecutar.
Fuentes de referencia:
- https://github.com/JanYork/llm-wiki-cli
- https://github.com/JanYork/llm-wiki-cli/tree/main/skills/using-lwc
Requisitos:
1. Lee este README, `SECURITY.md` y `skills/using-lwc/SKILL.md`. Si `lwc` no se
puede invocar globalmente, instala la versión oficial verificada por checksum;
no antepongas una ruta privada al binario ni `LWC_PROJECT_ROOT` a los comandos
habituales.
2. Ejecuta `lwc --version`; si falta la memoria global, inicialízala una sola vez
con `lwc --scope global init`; después ejecuta `lwc agent install --yes`. Ese
comando detecta los agentes compatibles instalados e instala de forma segura
su MCP, Skill, Hook e Instructions en las ubicaciones oficiales. No reproduzcas
esa lógica manualmente ni instales además un paquete nativo para el mismo agente.
3. Revisa `lwc agent status --target all --location global`. Reinicia los agentes
afectados y completa la revisión de confianza habitual para los Hooks cuando
corresponda. No inicialices una Wiki de proyecto ni ninguno de los grafos sin
consentimiento explícito para ese proyecto.
4. Si el entorno de ejecución actual no es uno de los AgentTargets registrados por LWC, usa sus
convenciones oficiales de usuario para instalar el Skill canónico `using-lwc`,
un bloque de instrucciones aditivo, `lwc serve --mcp` y un Hook de sesión acotado,
solo donde esos puntos de integración tengan soporte oficial. Conserva la configuración
existente, mantén la idempotencia e informa de los puntos no compatibles
en lugar de inventar rutas o claves.
Al terminar, informa de la versión de LWC, los Targets detectados y configurados,
los resultados de status, los archivos modificados, los puntos de integración no compatibles
y cualquier reinicio o acción de confianza que quede pendiente.
lwc implementa el patrón LLM Wiki propuesto por Andrej Karpathy: un LLM construye y mantiene de forma incremental una Wiki persistente e interconectada, en lugar de reconstruir el conocimiento desde documentos sin procesar en cada consulta. La arquitectura de la CLI y algunos detalles de implementación también se inspiran en nashsu/llm_wiki.
Este proyecto adapta esas ideas a una CLI en Rust, orientada primero a agentes y respaldada por SQLite.
LWC separa el conocimiento duradero en capas claramente delimitadas:
| Capa | Finalidad |
|---|---|
| Fuentes originales | Instantáneas inmutables de evidencia seleccionada |
| Wiki | Páginas, citas, enlaces y procedencia mantenidos por el agente |
| Esquema y propósito | Reglas del proyecto que guían el mantenimiento futuro |
SQLite es la fuente de verdad. Markdown, los índices de texto completo y los grafos opcionales son proyecciones reconstruibles. Las operaciones devuelven JSON estructurado para facilitar la auditoría y la recuperación.
LWC indexa las fuentes y las páginas de la Wiki a nivel de documento, pasaje y oración. El agente puede empezar con un contexto pequeño y relevante y ampliar solo el fragmento exacto que necesita.
El grafo documental opcional conecta páginas, fuentes, citas, enlaces y relaciones semánticas explícitas. SQLite sigue siendo la autoridad; Grafeo o SurrealDB aportan una capa de recorrido reconstruible. Cada relación conserva su motivo, procedencia, confianza y evidencia.
Los adaptadores opcionales Anydoc o MarkItDown convierten archivos locales compatibles en Markdown revisable antes de incorporarlos. OfficeCLI ofrece una vía separada, de solo lectura y sujeta a consentimiento para Word, Excel y PowerPoint. Ninguna capacidad se instala ni activa en silencio, y los archivos de Office originales no se modifican.
Recuperación e indexación → · Grafo documental → · Conversión de documentos →
Para la mayoría de los usuarios basta con un comando:
npm install --global @i-xor/lwcTambién se admiten Homebrew, crates.io, las versiones de GitHub verificadas mediante suma de comprobación y las compilaciones locales con Cargo.
Instalación y actualizaciones →
El Skill using-lwc incluido convierte LWC en una capa de memoria proactiva. Recupera contexto acotado, separa el conocimiento de proyecto del global, integra fuentes, mantiene las citas y solo conserva conocimiento verificado que merece reutilizarse.
Se instala desde skills.sh:
npx skills add JanYork/llm-wiki-cli --skill using-lwc -gLa invocación canónica es $using-lwc. El Skill es independiente
del agente e incluye guías específicas para memoria, grafos documentales, Word
Graph, CodeGraph, etiquetas fuertes, conversión, configuración, recuperación y
mantenimiento.
LWC detecta los agentes compatibles y configura sus superficies MCP, Skill, Hook e Instructions mediante adaptadores AgentTarget idempotentes:
lwc agent install --yesEl MCP unificado y de solo lectura ofrece memoria Wiki acotada y contexto de código opcional sin ampliar el espacio de trabajo. Es compatible con Claude Code, Codex, Cursor, OpenCode, Gemini CLI, Kiro, Hermes, Antigravity, GitHub Copilot in VS Code, Copilot CLI, Copilot for JetBrains y pi.
Normalmente, la persona describe el objetivo y revisa el resultado; el agente maneja la CLI. El recorrido completo está en la guía de inicio rápido.
El agente crea una Wiki local del proyecto y define su propósito y reglas de mantenimiento. El estado se excluye localmente de Git salvo que se decida versionarlo de forma explícita.
Los archivos seleccionados se convierten en instantáneas inmutables y sin duplicados. LWC rastrea sus rutas y puede indicar si el archivo actual no ha cambiado, se ha modificado, falta o ha sido reemplazado.
El agente lee la fuente completa dentro de límites explícitos, escribe un resumen con citas, actualiza el conocimiento compartido y solo entonces da por terminada la incorporación.
La búsqueda prioriza las páginas mantenidas sin perder el vínculo con la evidencia. El agente abre el texto original exacto cuando una afirmación exige verificación.
El ciclo normal consiste en recuperar conocimiento relevante, comprobar fuentes o código actuales cuando importa la vigencia, realizar la mínima actualización verificada y validar la recuperación, los enlaces y los grafos aplicables. Las revisiones amplias se publican de forma atómica mediante un changeset.
Un changeset mantiene oculta una actualización de varios pasos hasta que haya sido revisada y validada. El commit publica en una sola transacción únicamente las entidades afectadas, conserva el trabajo ajeno y falla de forma segura ante un conflicto de revisión de la misma entidad.
Para las operaciones compatibles se conserva un parche inverso exacto, lo que permite un rollback protegido sin reemplazar toda la Wiki.
| Ámbito | Uso |
|---|---|
| project | Conocimiento perteneciente a la Wiki del proyecto más cercano |
| global | Conocimiento reutilizable entre proyectos |
| all | Recuperación combinada de solo lectura y Sync coordinado |
Las escrituras siempre apuntan a un único almacén explícito; LWC no crea citas ni enlaces implícitos entre proyectos.
Ámbitos y detección de proyectos →
La búsqueda es léxica, determinista y prioriza las páginas mantenidas. Puntúa por separado título, ruta, resumen, cuerpo, procedencia y evidencia del grafo; admite filtros de página, fuente y tipo, y puede explicar el cálculo exacto.
Para CJK usa bigramas adyacentes y unigramas útiles; para texto latino, términos alfanuméricos en minúsculas. Al no depender de diccionarios, mantiene un comportamiento estable con nombres de productos, símbolos de código, texto multilingüe y vocabulario emergente.
Los pesos auditables expresan la importancia duradera de un documento. El feedback de una consulta solo reordena candidatos coincidentes y guarda una huella, no la consulta original. Ninguno puede hacer aparecer contenido ajeno.
El visor local presenta páginas, fuentes, Markdown, relaciones documentales y estructura del código mediante una interfaz de bucle local limitada a GET/HEAD. No migra, actualiza ni construye grafos.
CodeGraph es exclusivo del proyecto y se inicializa de forma explícita. Permite consultar símbolos, llamadores, llamados, dependencias, archivos e impacto, mantiene la telemetría desactivada y actualiza el grafo de forma atómica por archivo propietario.
El runtime reconoce TypeScript, TSX, JavaScript, JSX, ArkTS, Python, Go, Rust, Java, C, C++, C#, Razor, PHP, Ruby, Swift, Kotlin, Dart, Svelte, Vue, Astro, Liquid, Pascal, Scala, Lua, Luau, Objective-C, R, Solidity, Nix, YAML, Twig, XML, .properties, CFML, CFScript, CFQuery, COBOL, VB.NET, Erlang y Terraform.
El lint, la reindexación, la materialización de Markdown, la compactación, los checkpoints y la proyección de grafos son operaciones explícitas. El trabajo largo es duradero, observable, reanudable y se aplica por unidades documentales acotadas.
SQLite sigue siendo la autoridad. Los índices, Markdown y grafos pueden reconstruirse sin reescribir la historia de las fuentes ni el conocimiento actual de la Wiki.
El benchmark opcional mide tiempo de importación, latencia de búsqueda, Recall@5/10, MRR y almacenamiento sobre un corpus saneado aportado por el usuario. Una comparación justa fija máquina, corpus, consultas y condiciones, y compara medianas de varias ejecuciones.
Restricciones actuales:
- base de conocimiento para una sola máquina y un solo usuario;
- flujo de texto UTF-8;
- límite de 64 MiB por schema, purpose, source o cuerpo de página;
- búsqueda léxica, no recuperación vectorial semántica.
Objetivos excluidos deliberadamente:
- sin llamadas LLM incorporadas;
- sin base de datos vectorial;
- sin daemon ni servicio en segundo plano;
- sin interfaz web ni de escritorio;
- sin contrato para editar directamente la base de datos.
Si la proyección Markdown se desvía, reconstrúyela. Si el esquema SQLite está mal, corrígelo mediante la CLI y migraciones, no a mano.
Se aceptan issues y pull requests, especialmente sobre:
- ergonomía del flujo de agentes;
- proyección determinista;
- contratos duraderos de citas y mantenimiento de páginas;
- calidad de búsqueda en corpus técnicos multilingües.
Lee CONTRIBUTING.md antes de abrir un pull request. Informa de problemas de seguridad según SECURITY.md.
Publicado bajo la Apache License 2.0.





