Knowl
Memoria local-primero siempre actualizada para agentes de IA
Documentación
Tu CLAUDE.md solo crece. Knowl retira los hechos cuando cambian.
Inicio rápido · Por qué la supersesión · Qué se almacena · Características · Configuración del agente · Visor · Requisitos · Referencia completa →
Tu agente comienza cada sesión en blanco, por eso mantienes un CLAUDE.md. Solo crece. Seis meses después
todavía menciona la base de datos de la que migraste la primavera pasada, y ahora el agente obtiene ambas respuestas.
Knowl es memoria persistente para Claude Code, Cursor y Codex, mediante
MCP o la CLI. Cuando un hecho se reemplaza, el anterior se retira
en lugar de competir con el nuevo. No se necesita clave de API. Cuando Knowl no está seguro de que el hecho nuevo
reemplace al anterior, deja ambos activos y te entrega el comando knowl supersede para que lo indiques.
Desactiva eso y la recuperación cae del 98% al 47%. De extremo a extremo, de 90 a 73. Cómo se midió ↓
Cuarenta segundos, una decisión, tres agentes:
Inicio rápido
Requiere Node.js 22 o posterior. macOS, Linux y Windows.
npm install -g @dat999zx/knowl
cd your-project
knowl init
Otros gestores de paquetes
El paquete publicado es el mismo en todos los casos; cada uno de estos lo instala y coloca knowl
en tu PATH.
pnpm add -g @dat999zx/knowl
yarn global add @dat999zx/knowl
bun add -g @dat999zx/knowl
O ejecútalo sin instalarlo:
npx @dat999zx/knowl init
Knowl se ejecuta en Node.js en todos estos casos — Bun lo instala, Node lo ejecuta. Incluye complementos nativos (SQLite, tree-sitter, el runtime de embeddings), por lo que ejecutar la CLI directamente bajo el runtime de Bun o Deno no es compatible.
knowl init crea .knowl/, instala los archivos de guía del proyecto, actualiza .gitignore y
registra Knowl con los agentes que detecte. También calienta un modelo de embeddings local (~53 MB)
en segundo plano — init tiene éxito de cualquier manera, y sin él aún obtienes búsqueda por palabras clave.
Esa es toda la configuración. No registras memoria a mano: tu agente la lee y escribe mientras trabaja.
Conexión de un agente
knowl init registra el servidor MCP para cada host que encuentre. Inicia una nueva sesión después para que
el agente recoja su guía, y consultará y escribirá memoria por sí solo.
compuerta significa que Knowl puede rechazar una edición que invalide código que otra sesión está sosteniendo.
Neovim y Kiro funcionan igual que Zed y JetBrains, mediante knowl acp. Cline necesita una
línea que lo apunte al plugin incluido. Hermes Agent recibe un plugin de Python, instalado por ti,
que funciona tanto en la terminal como en Hermes Desktop, y además puede seleccionarse como
proveedor de memoria de Hermes. OpenClaw se ejecuta en proceso dentro de su gateway mediante un plugin de extensión,
evaluando compuertas de escritura sin la sobrecarga de subprocesos — knowl init openclaw lo copia e imprime
los dos comandos que lo registran. Cualquier otro cliente MCP funciona sin
integración alguna.
¿Ejecutas agentes en paralelo? Cada git worktree se resuelve al almacén del checkout principal —
los espacios de trabajo de Conductor, el isolation: "worktree" de Claude Code, o tus
propios scripts comparten una sola memoria, sin nada que configurar.
Cómo funciona y su único límite →
→ Cada host y lo que puede hacer · Cómo lo usan los agentes · Herramientas y recursos MCP
La idea: memoria que se retira sola
La mayoría de los sistemas de memoria son de solo añadido. Almacenar "nos mudamos a SQLite" deja "usamos PostgreSQL"
activo y recuperable, así que el agente obtiene ambos y elige por rango. Knowl trata una escritura del mismo tema
como una corrección: el predecesor se marca como superseded, sale de la recuperación normal y permanece
consultable mediante knowl timeline.
Ese único comportamiento es la mayor parte de la diferencia de precisión. En el corpus de Resolución de Conflictos de MemoryAgentBench — 455 hechos, 100 preguntas sobre qué hecho es el actual, recuperación top-5, sin lector LLM:
| Configuración | Top-1 | Retornos obsoletos | Átomos activos |
|---|---|---|---|
| Supersesión ACTIVADA | 98.0% | 2 / 100 | 306 |
| Supersesión DESACTIVADA | 47.0% | 62 / 100 | 455 |
Mismo corpus, mismo clasificador, misma ruta de consulta. La única variable es si el hecho desactualizado sigue activo. Esta es una medición a nivel de recuperación en el propio entorno de Knowl: pregunta si el hecho actual vuelve primero, sin ningún modelo en el bucle.
Verificado de extremo a extremo, en el propio entorno del benchmark
Como un número que te puntúas a ti mismo vale menos que uno que puntúa otro, la misma afirmación se volvió a ejecutar dentro del entorno de MemoryAgentBench, puntuada por su propio código, con un LLM leyendo lo que Knowl devolvió — la configuración más difícil, completamente de extremo a extremo, en el contexto más grande que ofrece la tarea:
| Sistema | FactConsolidation-SH @262K |
|---|---|
| Knowl | 90 |
| agentmemory | 79 |
| GPT-4o (contexto largo) | 60 |
| HippoRAG-v2 | 54 |
| BM25 | 48 |
| GPT-4o-mini (contexto largo) | 45 |
| Qwen3-Embedding-4B | 29 |
| Cognee | 28 |
| MemGPT | 28 |
| Mem0 | 18 |
| MIRIX | 14 |
| Zep | 7 |
18,332 hechos, 100 preguntas, coincidencia exacta de subcadena. Cada fila usa gpt-4o-mini como lector, incluida la de Knowl — el artículo lo declara para todos los agentes RAG y de memoria, así que estas son comparaciones equivalentes. Knowl y agentmemory se midieron aquí; todas las demás cifras provienen del artículo de MemoryAgentBench, arXiv 2507.05257v4, Tabla 3. agentmemory no se evalúa en ese artículo — sus cifras publicadas son recall de recuperación de LongMemEval-S, una tarea diferente — así que se ejecutó a través del mismo entorno con la misma configuración, y ambos adaptadores comparten una única ruta de código de lector para que ninguno pueda desviarse del manejador RAG del propio artículo. Método, mecanismo y pasos de reproducción: FINDINGS.md.
De lo contrario, se muestran todos los sistemas de memoria comerciales que evalúa el artículo, más el puntaje más alto de cada familia de línea base. La tabla del artículo ha cambiado entre versiones — BM25 leía 56 en v1 y lee 48 en v4 — así que se cita la versión, no solo la tabla.
El 90 de Knowl se midió el 2026-08-08 y se reprodujo de forma independiente en 89.0 el 2026-08-19 con el
adaptador incluido; el 79 de agentmemory es una sola ejecución. Cada cifra aquí es una ejecución en
temperature: 0.7, y la brecha de ablación se movió 4 puntos entre dos ejecuciones de la misma celda de 6k, así que
léelas por el punto en lugar del decimal.
Desactivar la supersesión en ese mismo entorno reduce Knowl a 73, y la brecha se mantiene en un cambio de 40× en el tamaño del corpus:
| Contexto | Supersesión ACTIVADA | DESACTIVADA | Brecha |
|---|---|---|---|
| 262K | 90 | 73 | +17 |
| 6K | 94 | 78 | +16 |
Las dos secciones miden cosas diferentes y no son comparables entre sí: 98% es recuperación top-1 en 6K sin lector, 90 es precisión de extremo a extremo en 262K con uno. Solo la segunda es comparable con los sistemas publicados anteriores. Consulta benchmarks para el protocolo, los resultados incluidos y lo que la tarea no cubre — incluido multi-hop, donde Knowl puntúa 7 contra un techo de recuperación de 14 puntos.
La supersesión es una corrección, no un borrado: el elemento, sus afirmaciones y su historial sobreviven todos.
No es una maqueta — la misma secuencia contra la CLI publicada, grabada desde
demo.tape:
Compartir memoria en un equipo: knowl.cloud
Todo lo anterior es local y no requiere cuenta. knowl.cloud es la capa opcional alojada para cuando una sola máquina no es suficiente:
- Espacios de trabajo compartidos. El conocimiento escrito en un checkout llega a los agentes de los compañeros, y cada repositorio sigue siendo dueño de lo que publica.
- Agentes de navegador. claude.ai y chatgpt.com no pueden ejecutar un proceso local, así que se conectan mediante un endpoint MCP remoto con un token limitado a un espacio de trabajo.
El modo solo local sigue siendo una forma de primera clase de ejecutar Knowl. Nada de lo anterior es necesario para usar nada de lo que está arriba.
Qué se almacena
Cada átomo tiene exactamente una de siete categorías:
| Categoría | Úsala para |
|---|---|
fact | Verdades estables del proyecto, convenciones y comportamiento verificado |
decision | Una opción seleccionada con su razonamiento y alternativas |
goal | Un resultado previsto que guía el trabajo futuro |
constraint | Una regla o límite que debe seguir cumpliéndose |
architecture | Cómo están dispuestos los componentes y cómo interactúan |
state | Progreso actual, preparación, bloqueos o estado operativo |
skill | Un procedimiento reutilizable o una descripción de flujo de trabajo aprendido |
Junto al contenido, cada átomo mantiene un estado (active, deprecated, rejected, archived,
superseded), una marca de frescura, confianza, etiquetas, commit de origen, rutas afectadas y
evidencia opcional que apunta a archivos, commits, pruebas, comandos, URLs o símbolos de código indexados. La
evidencia de archivos y símbolos queda obsoleta por sí sola cuando el código se mueve, que es como un átomo admite que puede estar
desactualizado en lugar de afirmar una versión del repositorio que ya no existe.
Lo que Knowl deliberadamente no almacena son tus conversaciones. La captura del ciclo de vida registra eventos acotados y resúmenes — nunca prompts, transcripciones, salida estándar ni variables de entorno. La búsqueda de transcripciones crudas existe como un índice que puedes desactivar sobre archivos que el host ya escribió.
→ Referencia del modelo de conocimiento
Cómo lo usan los agentes
knowl serve expone el almacén mediante MCP sobre stdio; knowl init lo registra por ti. El flujo de trabajo que
la guía instalada pide a los agentes seguir es breve:
- Consulta la memoria con las palabras que nombran el tema antes de leer archivos del repositorio.
- Usa un resultado activo directamente; inspecciona archivos solo ante un fallo, conflicto o resultado obsoleto.
- Almacena hallazgos duraderos, objetivos declarados y diagnósticos recurrentes sobre la marcha, y corrige la memoria contradicha en lugar de duplicarla.
En la práctica se ve así — una sesión nueva, sin contexto, sin nada pegado:
You why did we pick SQLite over Postgres?
Agent → knowl_query "sqlite postgres database choice"
← decision · Use SQLite · active · fresh
"Keeps storage repository-local and simple to operate."
alternatives: PostgreSQL, MongoDB
tags: database, local-first
SQLite keeps the store repository-local and simple to operate.
Postgres and MongoDB were both considered and rejected on that
basis.
El agente respondió antes de abrir un solo archivo, y sabía las opciones que rechazaste — que el código no puede decirle, porque las alternativas rechazadas no dejan rastro en un codebase.
| Host | MCP | Ciclo de vida automático | Puerta de escritura | Aviso de captura | Notas |
|---|---|---|---|---|---|
| Claude Code | Sí | Sí | Sí | Sí | La guía de prompts también se instala |
| Codex CLI | Sí | Sí | Sí | Sí | Los hooks necesitan codex_hooks; no en Windows |
| GitHub Copilot | Sí | Sí | Sí | Sí | Reutiliza el formato de hooks de Claude Code |
| OpenHands | Sí | Sí | Sí | Sí | La entrada MCP se añade a mano |
| Antigravity | Sí | Sí | Sí | Sí | El contexto viaja en injectSteps |
| Windsurf | Sí | Sí | Sí | Sí | El aviso viaja por MCP; sin hook de detención |
| Cursor | Sí | Sí | Sí | Sí | Finaliza en cada turno |
| Cline | Sí | Sí | No | Sí | Ciclo de vida mediante el plugin incluido |
| Hermes Agent | Sí | Sí | Sí | Sí | Plugin de Python, incl. Hermes Desktop; aviso mediante pre_verify en turnos de edición |
| Zed, JetBrains, Neovim, Kiro | Sí | Sí | No | Sí | Mediante knowl acp -- |
| Claude Desktop, OpenCode, Roo, … | Sí | No | No | Sí | MCP más el bucle de trabajo manual |
Detalle completo, y por qué existe cada brecha, en docs/hosts.md.
Donde hay hooks disponibles, ellos gestionan el ciclo de vida de la sesión: el contexto de arranque, la captura, los puntos
de control y la finalización ocurren sin que se lo pidan al agente. Donde no los hay, knowl task run,
task start, task checkpoint y task finish cubren el mismo terreno manualmente.
knowl init escribe el registro MCP para cada host que detecta. Para conectarlo a mano, la
entrada es la misma en todas partes:
{
"mcpServers": {
"knowl": { "command": "knowl", "args": ["serve"] }
}
}
Usa knowl.cmd como comando en Windows. Codex lee la misma entrada bajo mcp_servers.
→ Herramientas y recursos MCP · Referencia del ciclo de vida
Para qué sirve Knowl
Knowl hace un solo trabajo: mantener el conocimiento asentado de un proyecto preciso para los agentes que trabajan en él. No preferencias de usuario, no historial de chat — las decisiones, restricciones y arquitectura sobre las que un proyecto funciona, y cuáles de ellas siguen siendo ciertas hoy. La mayoría de los almacenes viven en un codebase, y las herramientas de deriva y evidencia apuntan allí, pero nada en el modelo de conocimiento lo exige.
Tres decisiones se derivan de eso:
- Tipado, no texto libre. Una decisión lleva razonamiento y las alternativas que rechazaste. Una
restricción es una regla que debe seguir cumpliéndose. Un átomo de
statese espera que quede obsoleto. La recuperación puede clasificar según esas diferencias; no puede clasificar según párrafos en un archivo de notas. - Gobernado, no solo añadir. Estado, frescura, procedencia, identidad de conflicto y sustitución permiten que el almacén te diga que algo dejó de ser cierto. Esa es toda la diferencia entre memoria y una pila de notas que crece sin fin.
- Local al repositorio, no un servicio. La base de datos está junto al proyecto que describe. Sin cuenta, sin salida de datos, sin proveedor entre tú y tu propio historial de proyecto.
Knowl no es deliberadamente una capa de personalización. No tiene opinión sobre tus usuarios y no guarda transcripciones propias.
Funciones
Todo lo siguiente funciona desde la CLI y desde cualquier agente conectado por MCP, contra la misma base de datos local. Sin cuenta, sin servidor, sin clave API. Cada elemento enlaza con la referencia completa para el detalle — y para los límites.
|
♻️ Conocimiento que se corrige solo Siete tipos de átomos tipados, donde una escritura sobre el mismo tema retira a su predecesor en lugar de quedarse a su lado. Ese único comportamiento es la diferencia 90-vs-73. La evidencia adjunta a un archivo o símbolo queda obsoleta por sí sola cuando el código se mueve.
|
🎯 Recuperación ajustada para agentes Primaria por vectores con un respaldo acotado de BM25, reordenada por frescura, estado y confianza, para que gane la respuesta actual en lugar de la meramente similar. El modelo de embeddings es local y opcional — sin él sigues teniendo recuperación por palabras clave, y nada sale de la máquina.
|
|
⏱️ Trabajo que sobrevive a la sesión En Claude Code, Codex y Cursor, los hooks gestionan el arranque, la captura, los puntos de control y la finalización sin que se lo pidan al agente. Un cierre limpio destila hasta ocho candidatos duraderos. Deja un flujo de trabajo en pausa bajo una clave y retómalo en cualquier sesión, desde cualquier directorio.
|
🔗 Espacios de trabajo Tu repositorio de API aprendió algo que el repositorio del frontend necesita. Enlázalos y una consulta se distribuye, mientras cada repositorio mantiene su propia base de datos y su propio límite de propiedad. Abre un átomo compartido de un peer completo por id, o termina el trabajo de ese repositorio desde aquí nombrándolo en la llamada. El conocimiento que un repositorio ya tiene solo se comparte cuando lo promueves.
|
|
📦 Procedimientos reutilizables Empaqueta un procedimiento con sus scripts bajo
|
💾 Tus datos, y cómo recuperarlos Exportación e importación JSONL con suma de verificación y cuatro políticas explícitas para cuando el mismo átomo cambió en dos lugares. La restauración verifica esquema, tamaño, SHA-256 e integridad de SQLite antes de tocar nada, y toma una instantánea previa a la restauración primero.
|
|
🛰️ Las sesiones en esta máquina se ven entre sí Veinte agentes en cuatro repositorios, y ninguno sabía que los otros existían — así que dos chocan con el mismo fallo y ambos empiezan a arreglarlo, y un tercero actualiza el motor sobre el que se apoyan los demás. Knowl registra en qué está cada sesión, qué escribió en este turno y qué fallo ha reclamado, y luego lo dice antes de que la segunda sesión empiece el mismo arreglo. Cada host con hooks de Knowl está dentro y se ven entre sí, Codex junto a Claude Code. No imprime nada cuando eres el único en ejecución.
| |
Los comandos que vale la pena conocer desde el primer día:
knowl query "auth design" # search project memory
knowl list --unread # browse it — and see what nothing ever reads
knowl edit <item-id> # open one memory in the viewer to fix it
knowl state # the active memory, as a hierarchy
knowl conflicts # items that contradict each other
knowl timeline <item-id> # every version an atom ever had
knowl context --token-budget 1500 # a fixed-size briefing for an agent
knowl pr --since origin/main # knowledge your diff may invalidate
knowl fleet # every agent session live on this machine, and what it is on
knowl config list # every setting, its value, and how to change it
knowl doctor # setup, retrieval, and registration
Conocimiento que se corrige solo — siete tipos de átomos tipados, y una escritura que retira lo que reemplaza
- **Siete tipos de átomos** — [enumerados arriba](#what-gets-stored). Estructura en lugar de un único archivo de notas que crece sin fin. - **Supersesión automática** — una escritura sobre el mismo tema retira a su predecesor. Esta es la [diferencia 90-vs-73](#the-idea-memory-that-retires-itself) mencionada arriba. Está protegida: una escritura automática (captura, ingesta) nunca retira un hecho verificado, una escritura que omite la clave de un elemento exclusivo nunca retira ese elemento, y una escritura que solo elimina los valores del hecho anterior no retira nada. Esos se mantienen lado a lado, y `knowl conflicts` los lista con cada hecho verificado retirado en los últimos 14 días. [Las reglas](docs/reference.md#governed-writes-and-current-truth) - **Identidad de conflicto** — marca un átomo como exclusivo y Knowl rechaza una segunda respuesta activa a la misma pregunta, en lugar de mantener ambas silenciosamente. `knowl conflicts` - **Historial completo** — cada versión que un átomo haya tenido sobrevive como una aserción inmutable. `knowl timeline ` - **Viaje en el tiempo** — pregunta qué creía el proyecto en una fecha pasada: `knowl query "auth design" --as-of 2026-01-01T00:00:00Z` - **Evidencia** — adjunta archivos, símbolos, commits, pruebas, comandos o URLs a un átomo. La evidencia de archivos y símbolos queda obsoleta *por sí sola* cuando el código se mueve. - **Detección de deriva** — `knowl pr --since origin/main` señala conocimiento que tu diff podría haber invalidado, antes de fusionarlo, y `knowl_drift` hace la misma pregunta desde dentro del agente que escribió la rama. Lo que reporta es una ruta citada que *ya no existe*, no una meramente editada — esa distinción es lo que mantiene la señal legible. - **La deriva que no puede alcanzar las afirmaciones** — la deriva observa archivos, y aproximadamente la mitad del almacén no cita ninguno. `knowl status` fechas esas en su lugar, por cuánto tiempo ha pasado desde que alguien las *reafirmó* por última vez, y nombra las que están más allá del ritmo de su propia categoría. Clasifica en lugar de marcar: para prosa no hay evidencia de que una afirmación se haya vuelto falsa, solo la ausencia de que alguien la reafirme. - **Inteligencia de código** — índice incremental Tree-sitter sobre TypeScript, JavaScript, Python y Go, para que la evidencia pueda apuntar a localizadores `symbol://`, no solo números de línea. `knowl index-code` - **Escrituras seguras contra secretos** — cada escritura se examina en busca de secretos detectados, rutas sensibles y contenido sobredimensionado antes de que se registre. La memoria de larga duración es el último lugar donde una credencial debería terminar.
Recuperación ajustada para agentes — la respuesta actual gana, no solo la similar
- Clasificación primaria por vectores con un respaldo acotado de BM25, re-clasificada por frescura, estado, confianza y actualidad — para que la respuesta actual gane, no solo la similar. (Este es el camino agente/MCP; una
knowl queryde un solo repositorio desde la CLI es léxica.) - Funciona sin conexión. El modelo de incrustación es local y opcional; sin él aún obtienes recuperación por palabras clave. La recuperación nunca envía tu consulta a ningún lugar.
- Cinco ajustes de incrustación incluidos, incluido uno multilingüe que cubre más de 200 idiomas, además de
custompara tu propio modelo ONNX.knowl config set-model <model> - Soporte de identificadores exactos — nombres de archivo, IDs de elementos y localizadores
symbol://siguen funcionando incluso cuando la similitud semántica es débil. - Paquetes de contexto con presupuesto de tokens — entrega a un agente un informe de tamaño fijo con las restricciones fijadas primero, para que las reglas innegociables nunca se trunquen:
knowl context --query "auth rollout" --token-budget 1500 - Retroalimentación de uso — los agentes informan si un resultado fue útil, y
knowl accessmuestra qué se usa mucho, qué está obsoleto y qué sigue causando correcciones.
Trabajo que sobrevive al final de una sesión — hooks, bucles de trabajo, testigos de traspaso y claves de reanudación
- Ciclo de vida automático en Claude Code, Codex y Cursor — el arranque, la captura, los puntos de control y la finalización ocurren a través de hooks sin que se le pida al agente.
- Bucles de trabajo para todo lo demás —
knowl task start,checkpoint,finish, o envuelve un solo comando conknowl task run "Run tests" -- npm test. - Promoción al final de la sesión — un cierre limpio destila hasta ocho candidatos duraderos de la sesión, y un comando que ha tenido éxito tres veces se convierte en un átomo
skillque lo describe. - Traspaso — deja un testigo para la próxima sesión en este repositorio. Se entrega una vez y luego se archiva.
- Claves de reanudación — estaciona un flujo de trabajo bajo una clave corta que conservas, y recógelo en cualquier sesión, desde cualquier directorio, cualquier número de veces después.
knowl resume <key> - Búsqueda de transcripciones — activada por defecto, y desactivada significa que no existe nada en disco. Con ella activada, la prosa de sesiones pasadas es buscable, de modo que un fallo de memoria se degrada a una búsqueda más lenta en lugar de amnesia. La indexación por palabras clave se mantiene sola; la cobertura semántica se completa con
knowl reindex --transcripts, porque un modelo de incrustación no pertenece a un hook por turno. - La brecha de recuerdo — con qué frecuencia un agente editó un archivo del que este almacén ya sabía algo sin recuperarlo nunca. Invisible desde dentro de una sesión, porque un agente que nunca recuperó un átomo no puede notar que el átomo existe. Se cuenta en cada llamada de herramienta, se muestra solo a ti, en
knowl status— y se divide entre el hilo principal y los subagentes, porque un subagente no recibe recordatorio de prompt ni instrucciones del servidor, así que su parte es la única lectura que obtienes sobre si la tarjeta de arranque por sí sola mantiene el hábito. - La propia puntuación de la puerta de escritura — con el impacto de cambios activado, la puerta que rechazaría una edición al código que otra sesión cambió se ejecuta primero en modo sombra, registrando cada rechazo que contuvo.
knowl statusimprime la precisión que produjo, junto a la barra que debe superar antes de que se le permita bloquear algo (≥95% sobre ≥40 hallazgos adjudicados) — para que la decisión de armarla se tome contra un número en lugar de una corazonada. Ausente por completo hasta que la puerta haya retenido algo: un repositorio que nunca la ejecutó no ha puntuado 0%, no ha medido nada.
Las sesiones en esta máquina pueden verse entre sí — un solo registro, en cada host
La otra mitad del mismo problema: no una sesión a lo largo del tiempo, sino varias a la vez. Claude Code mantiene un registro de sus sesiones activas y permite que una se comunique con otra; no registra nada sobre lo que cualquiera de ellas está haciendo, y ningún otro host registra nada en absoluto.
- Un registro al inicio de la sesión — quién más está ejecutándose, agrupado por repositorio, el propio primero. Vacío cuando estás solo, para que un usuario de sesión única nunca vea una línea sobre nada de esto.
- Cada host con hooks de Knowl está en él, y se ven entre sí. Una sesión de Codex aparece en el registro de una sesión de Claude y viceversa. La actividad proviene del registro de sesiones del propio host cuando lo publica, y de la actualidad cuando no lo hace.
- "Otra sesión ya está en este problema" — dos sesiones nunca ven salida byte-idéntica, por lo que los fallos se comparan con una firma normalizada en lugar de texto bruto, y una afirmación se vincula al problema en lugar del archivo. La tarjeta nombra al par, sus archivos y la llamada exacta a realizar; un anuncio desnudo de una edición conflictiva no es mediblemente mejor que no decir nada.
- Una verificación previa antes de que una superficie compartida se mueva — hooks, configuraciones del host, migraciones, archivos de bloqueo y la instalación
knowlsobre la que se ejecutan los hooks de todas las demás sesiones. Consejo en un canal que el agente ya recibe, nunca un rechazo. - Un empujón al momento de detenerse cuando las escrituras de este turno invalidaron un archivo que otra sesión activa había leído, unido a través del conjunto de lecturas en lugar de adivinado. Sombra por defecto — registra lo que habría dicho, porque entregarlo retiene una detención y eso cuesta un turno.
- Solo se ofrecen como mensaje los pares alcanzables. Una sesión en otro host o bajo otro directorio de configuración se lista y se marca, y la tarjeta te pregunta a ti en su lugar — una tarjeta que le dijo al agente que enviara un mensaje a una sesión que no puede abordar le enseña a saltarse la siguiente.
- A nivel de máquina, no por repositorio.
~/.knowl/fleet.db, junto a las claves de reanudación: una sesión en~/work/apiactualizando el motor es un hecho que~/work/webnecesita.knowl fleetlo lee desde cualquier terminal, dentro de un proyecto o no. fleet.enabledse envía activado, y también las tarjetas — el registro cuesta un listado de directorio y no dice nada cuando estás solo, y una tarjeta es consejo en un canal que el agente ya lee. Lo que se envía silencioso es lo que te costaría algo: el resumen por turno, y el empujón al momento de detenerse que retiene una detención.
Espacios de trabajo: muchos repositorios, una memoria compartida — tú decides qué comparte cada repositorio
Tu repositorio de API aprendió algo que el repositorio de frontend necesita. Vincúlalos, y una consulta se expande — mientras cada repositorio mantiene su propia base de datos y su propio límite de propiedad.
knowl workspace init product # create the workspace
knowl workspace add product # run inside each repo that joins it
# ...or --default-visibility repo to keep its writes private
knowl workspace promote # pick what to share from a list
knowl workspace promote --category decision --apply # or name it outright
Unirse a un espacio de trabajo comparte lo que el repositorio escribe a partir de entonces, y lo dice cuando lo hace; pasa --default-visibility repo para rechazarlo. Lo que el repositorio ya sabe se comparte solo cuando lo promueves. Los resultados de pares se etiquetan con el repositorio que los posee, y uno compartido se puede abrir completo por id — sin su affectedPaths ni evidencia, que se resuelven contra un checkout en el que no estás parado. Un par que falta o es ilegible se omite y se divulga, nunca una razón para que tu búsqueda local falle.
Escribir en un repositorio hermano es deliberado en lugar de incidental. Un agente nombra el repositorio en la llamada y esa única llamada se ejecuta como ese repositorio — su almacén, su configuración, sus reglas de propiedad, sellado como propio — exactamente como cd-ing allí siempre se ha comportado para la CLI. No nombres nada y un id extranjero se rechaza como antes. De cualquier manera, el conocimiento privado de un repositorio permanece privado hasta que se promueve.
Procedimientos reutilizables — habilidades respaldadas por archivos que puedes inspeccionar antes de que se ejecuten
- Habilidades respaldadas por archivos — empaqueta un procedimiento con sus scripts bajo
.knowl/skills/, luego inspecciónalo antes de que se ejecute.knowl skill list·read·run - Manuales globales — un procedimiento que es el mismo en todas partes vive una vez en
~/.knowl/skills/, y cada repositorio proporciona sus propios comandos y rutas a través de un enlace en.knowl/config.json. Un manual y un enlace son dos claves: ninguno ejecuta nada solo, un manual sin enlazar lista y lee pero se niega a ejecutar, y una habilidad de proyecto con el mismo nombre eclipsa la global. - Lo que se ejecuta se muestra antes de ejecutarse — un manifiesto declara su
inputs, sucapabilitiesy supreconditionsde cierre ante fallo (clean_worktree,on_branch:,command_exists:), una condición previa no reconocida se niega en lugar de pasar, y el banner de ejecución imprime el comando completamente resuelto. La aprobación es por conjunto de bytes y se re-verifica en cada ejecución; un repositorio no puede enviar una habilidad y su propia aprobación. Las capacidades son declaraciones, no una caja de arena, y lo dicen. - Síntesis determinista — combina varios átomos en un resumen de arquitectura sin proveedor de IA involucrado:
knowl synthesize --scope storage
Tus datos, y cómo recuperarlos — exportación portátil, instantáneas verificadas y un comando de diagnóstico
- **Exportación/importación portátil** — JSONL con checksum y cuatro políticas explícitas de divergencia para cuando el mismo átomo cambió en dos lugares. `knowl export` · `knowl import --on-divergence newer` - **Instantáneas verificadas** — `knowl snapshot create` escribe un manifiesto de checksum; la restauración verifica la versión del esquema, el tamaño, SHA-256 y la integridad de SQLite *antes* de tocar nada, y toma una instantánea previa a la restauración primero. - **Recolección de basura** que previsualiza por defecto y protege cualquier cosa usada recientemente. `knowl gc` - **`knowl doctor`** — un comando que verifica configuración, ajustes, integridad, esquema, recuperación, cobertura de vectores, registro de agentes y salud del espacio de trabajo. - **IA opcional** — configura un proveedor para `knowl ask` e ingesta de texto sin procesar. Cada función anterior funciona sin uno.
Véalo: el visor local
knowl view inicia un editor en 127.0.0.1 con un token de acceso nuevo por cada lanzamiento — saber el
puerto no es suficiente para leer nada, y las escrituras además requieren que la solicitud nombre a este
visor como su origen, por lo que otra página que tengas abierta no puede escribir aquí.
knowl view
Déjalo abierto mientras trabajas y te muestra el razonamiento del agente. Una recuperación ilumina los átomos
con los que respondió, en orden de rango, y deja caer el resto del grafo. Una escritura llega a un
escenario despejado. Una retirada se oscurece y permanece oscura. Cada átomo cambiado tiene un pie de foto con lo que le
sucedió — NEW, UPDATED, SUPERSEDED.
Observa la base de datos en lugar del agente, por lo que no importa qué herramienta esté trabajando:
Claude Code, Codex, Cursor, o tú ejecutando knowl query en otra terminal iluminan el mismo
grafo. No se agregó nada a ninguna ruta de escritura para que esto funcione, así que cuando no hay visor abierto, nada de
eso se ejecuta.
Aquí también es donde corriges lo que tus agentes hicieron mal. Abre cualquier átomo para leer su evidencia y línea de tiempo, luego edítalo, archívalo o escribe uno nuevo a mano. El archivado es reversible — Restaurar está en el mismo panel. Los átomos retirados permanecen en el grafo como puntos oscuros: son la historia, y ya no pretenden ser actuales.
Junto al grafo hay una lista, con una lente para lo que nada ha leído nunca. Esa se gana su
lugar: la búsqueda solo alcanza memoria que ya sospechas que existe, y un átomo sin
información es precisamente el que nadie piensa en buscar. Ordenada de más antigua a más reciente, aparece por sí
sola. knowl list --unread hace la misma pregunta desde la terminal.
El grafo enlaza átomos solo a través de etiquetas que pocos átomos comparten — una etiqueta en docenas de ellos es una categoría, y el carril ya filtra por esas. Un átomo sobre el que nada más trata permanece sin enlazar en lugar de estar atado a un vecino arbitrario. Es una ayuda de navegación, no un grafo causal o de evidencia. Muestra contenido local completo en cada estado, por lo que el enlace de bucle local es el límite de privacidad: no lo pongas detrás de un proxy público o un túnel.
Memoria que es verdadera de ti, no de un repositorio
Algunas cosas no pertenecen a ningún repositorio: que prefieres pnpm, que el controlador de esta máquina se rompe con
CUDA 12, que cada proyecto aquí usa commits convencionales. Knowl guarda esas en un almacén
a nivel de máquina en ~/.knowl/global.db, separado de la memoria de cualquier proyecto.
knowl link global # this project may read and write it; reversible with --off
knowl store "I prefer pnpm over npm" --title "Package manager" --category constraint --namespace global
Tu proyecto siempre responde primero. El enlazado nunca cambia lo que un repositorio dice sobre sí mismo — las entradas globales se sitúan detrás de las del proyecto, y nunca pueden desplazarlas. Y una sesión sin repositorio en absoluto, como una ventana de Hermes Desktop sin carpeta abierta, lee el almacén global solo en lugar de no tener memoria. Un proyecto que existe pero no se abre sigue siendo un error: lo global son preferencias personales, nunca un respaldo para un almacén roto.
Te sigue a otra máquina. El almacén de la máquina se sincroniza con un espacio de trabajo en la nube de la misma manera que un proyecto — no es un proyecto, pero se aborda como uno:
knowl cloud connect --global # then push and pull with --global
Ejecuta cualquier comando knowl cloud fuera de un repositorio y usa el almacén de la máquina por sí
solo, diciéndolo. Esa inferencia es estrecha a propósito: solo cuando no hay proyecto por encima del directorio
en absoluto. Un proyecto cuya configuración no se puede analizar es un error sobre ese proyecto, nunca
respondido en silencio desde tus preferencias personales.
→ Espacios de nombres de memoria y la capa global
Todo lo demás
28 herramientas MCP (más 3 cuando la búsqueda de transcripciones está activada, 1 cuando está conectado a un espacio de trabajo en la nube, 2 cuando está vinculado a un espacio de trabajo local, 1 cuando el impacto de cambios está activado, 1 para conciencia de flota a menos que esté desactivado, y 1 cuando los hooks se ejecutan sobre MCP)
y dos URI de recursos · la
CLI completa, desde knowl status hasta knowl audit · una auditoría de integridad de solo lectura ·
evaluación de recuperación que puedes ejecutar tú mismo contra la gobernanza incluida y las suites de regresión
de 500 casos con knowl eval.
→ Referencia de CLI · Herramientas MCP · Benchmarks
Requisitos y datos locales
Node.js 22 o posterior. Todo lo que Knowl escribe para un proyecto vive bajo .knowl/, que knowl init
agrega a .gitignore:
| Ruta | Contiene |
|---|---|
.knowl/config.json | Configuración de proyecto, búsqueda, seguridad, IA y espacio de trabajo |
.knowl/knowl.db | Átomos, aserciones, commits de conocimiento, índice de texto completo, retroalimentación, embeddings |
.knowl/skills/ | Paquetes de habilidades respaldados por archivos |
Un poco vive junto a tu directorio de inicio en su lugar, bajo ~/.knowl/, porque es verdadero de la
máquina en lugar de cualquier repositorio: el almacén de preferencias personales a nivel de máquina
(~/.knowl/global.db), claves de reanudación, el registro de la flota de las sesiones que se ejecutan ahora mismo, tu
credencial en la nube y el espejo local de un espacio de trabajo en la nube. Los manifiestos de espacio de trabajo viven fuera de los repositorios
miembros por la misma razón — sus rutas de checkout son locales a la máquina. Las exportaciones e instantáneas se
escriben solo cuando las pides.
Documentación
Todo lo anterior es el resumen. La referencia completa es un documento que cubre cada subsistema en profundidad — incluidas las partes que están deliberadamente limitadas, que es generalmente lo que realmente necesitas saber.
| Si quieres saber… | Ve a |
|---|---|
| Qué es un átomo y qué significa cada campo | Modelo de conocimiento |
| Cómo se clasifica una consulta y qué gana los empates | Recuperación y contexto |
| Qué registra un hook y cuándo | Tareas, sesiones, ciclo de vida |
| Qué están haciendo las otras sesiones en esta máquina | La flota |
| Cómo un átomo nota que el código se movió | Evidencia y deriva |
| Cómo varios repos comparten memoria de forma segura | Espacios de trabajo |
| Cómo un procedimiento se vuelve reutilizable | Habilidades y síntesis |
| Cómo exportar, hacer instantáneas o restaurar | Portabilidad y mantenimiento |
| Cómo leer, corregir y agregar memoria a mano | Visor local |
| Cómo encajan las piezas y dónde están los límites de confianza | Arquitectura |
| Cómo conectar un host específico | Configuración de agentes |
| Cómo se midieron los números en esta página | Benchmarks |
| Cada comando y cada bandera | Referencia de CLI |
| Cada herramienta y recurso MCP | Herramientas MCP |
| Qué necesita un proveedor y qué nunca lo hace | IA opcional |
| Exactamente qué aterriza en el disco | Datos locales |
Contribuir
Consulta CONTRIBUTING.md para la configuración, las verificaciones a ejecutar antes de una solicitud de extracción y las convenciones que sigue este código base. Se pide a los contribuyentes que acepten el Acuerdo de Licencia de Contribuyente una vez, en su primera solicitud de extracción.
Licencia
Knowl está licenciado bajo la Licencia Apache 2.0. Apache-2.0 no otorga derechos de marca comercial.